上一篇文章[帶你玩轉Visual Studio——帶你發布自己的工程庫](http://blog.csdn.net/luoweifu/article/details/48895765)讓我們了解基本的靜態庫和動態庫,并將自己的工程編譯成庫,也能在自己的工程中引入第三方庫。正如上文提到的,我們在實際開發中可能會將工程釋出(也叫發布)多個不同類型的版本,如即要有靜態庫也要有動態庫,即有Debug也有Release。如何管理這些不同的釋出版本就是本文要講的內容。
* * *
# 為什么要有多種釋出版本
我們每打開一個工程你都會在工具欄中看到有Debug和Release兩個編譯方式的選擇。它們有什么區別,又為什么要有Debug和Release呢??
?
圖 1:Debug與Release
## Debug
Debug 通常稱為調試版本,它包含調試信息,并且不作任何優化,便于程序員調試程序。
## Release
Release 稱為發布版本,它往往是進行了各種優化,使得程序在代碼大小和運行速度上都是最優的,以使編譯出的可執行文件或庫的性能最高,以便用戶很好地使用。
## Debug與Release的區別
Debug和Release本質上就是兩組不同的編譯選擇配制,各自的默認設置一般不用更改。它們最大的區別在于Release進行了優化,去掉了調試信息,因此Release常用無法進行正確的調試;而Debug沒有進行優化,包含了調試信息,以方便程序員進行調試。我們可以通過比較它們的配制發現它們之間的區別:
1. 代碼編譯的優化?

Debug?

Release
2. 使用的運行時庫?

Debug?

Release
Debug使用的運行時庫一般后面會加d,而Release的不加,關于運行時庫的問題后面還會有專門章節的進行講解。
3. 鏈接的優化?

Debug?

Release
# 釋出方式的配制和管理
既然Debug或Release就一組配制,那能不能息增加一組配制呢?當然是可以的。還記得上一文[帶你發布自己的工程庫](http://blog.csdn.net/luoweifu/article/details/48895765)中的例子Utils嗎?既要編譯靜態庫又要編譯動態庫,我們之前都是在Debug下配制的,但編譯靜態庫與動態庫切換時每次都要更改配制非常麻煩,其實我們只要為靜態庫與動態庫添加兩組兩組機制,每次編譯時切換一下編譯項就可以了。
1. 點擊上面圖1下拉列表框的Configuration Manager…或右鍵工程->屬性->右上角的Configuration Manager…。打開Configuration Manager對話框。
2. 在Active solution configuration下拉列表中點擊New新建的一組配制。?
?
Configuration Manager
3. Copy settings from里有幾個選擇,Empty表示不拷貝任何配制,添加一組默認設置的配制項;Debug表示會拷貝已有的Debug這組配制中的所有設置,添加完后你再基于這個配制進行修改。一般我們會從已有的Debug或Release中拷貝然后再進行相應的修改,因為Debug或Release中有很多已經設置好的配制,這樣不容易出錯,而且Debug或Release也是默認的標準配制。?
?
New Solution Configuration
4. 選擇我們新添加的配制項Debug_static,右鍵工程->Properties進行相應的設置,這個在前面一文中已經講過了,不再贅述。
5. 同樣的方式,我們可以增加Debug_dynamic、Release_Static、Release_Dynamic等配制項。?
?
新增多個配制項
* * *
* * *
上一篇回顧:?
[帶你玩轉Visual Studio——帶你發布自己的工程庫](http://blog.csdn.net/luoweifu/article/details/48895765)
下一篇要講述的內容:?
帶你玩轉Visual Studio——帶你多工程開發