vs中c++项目的配置
首先,我們一般不會修改解決方案的屬性,而是設(shè)置每個項目各自的屬性.
接著上一篇文章,我們來看看我們應(yīng)該怎樣來設(shè)置各項目的項目屬性更好:
我們以NYOJ_001項目的Debug版的設(shè)置為例:
在常規(guī)選項里,我們一般會設(shè)置輸出目錄(即生成.exe文件的目錄),中間目錄(即中間文件的目錄)。當(dāng)然你也可以在這里設(shè)置生成的.exe文件的文件名甚至擴(kuò)展名等。
如下圖所示:
一般設(shè)置如下的目錄:如果不記得某個宏變量的值,可以點(diǎn)擊“宏(M)>>”來查看。
既然我們修改了輸出文件的目錄,那我們也必須修改我們的調(diào)試目錄,不然就無法調(diào)試了。不信你運(yùn)行一下試試,雖然編譯通過了,但并沒像你想的那樣出現(xiàn)控制臺的“黑窗口”,原因就是我們沒有修改調(diào)試目錄:
將調(diào)試目錄修改為$(OutDir)就可以了,$(OutDir)就是我們之前在常規(guī)里設(shè)置的輸出文件的目錄:
這里面的命令參數(shù)一項也是比較重要的,如果你開發(fā)的是一個帶有命令行參數(shù)的項目,你調(diào)試的時候就可以在這里設(shè)置傳給程序的命令行參數(shù)來進(jìn)行調(diào)試了。你是否還記得你運(yùn)行一個帶有命令行參數(shù)的程序時是出現(xiàn)一個黑框框然后馬上就消失了,什么也不會做,除非你是將該程序拖到命令提示符下運(yùn)行。
這些設(shè)置完后,可以先編譯運(yùn)行一下程序,結(jié)果如下所示:
程序可以正常調(diào)試,還會在解決方案的根目錄下生成我們設(shè)置的輸出文件的目錄:Win32\Debug\Bin,生成的.exe文件就在該目錄下。還有中間文件目錄:Win32\Debug\XXX,里面放的都是生成的中間文件。如果你的這個項目里用到了其他的庫,你還需要像下面這樣設(shè)置你的項目的附加包含目錄和附加庫目錄:前都是設(shè)置其他庫的.h頭文件的目錄,一般放在庫的include文件夾下。后者是設(shè)置其他庫的lib以及.dll鏈接庫的目錄,一般放在庫的lib下。如下:
最后你還必須設(shè)置項目的附加依賴項的值:一般設(shè)置的就是xx.lib靜態(tài)鏈接庫的名稱
好了,所有必須設(shè)置的都已經(jīng)設(shè)置完成了。
下面還有一個非常有用的設(shè)置,我們知道當(dāng)我們的程序使用在其他的庫的dll文件時,在程序的當(dāng)前目錄或環(huán)境變量指定的目錄中必須能夠找得到這些.dll文件,即現(xiàn)在我們打開.exe文件所在的Bin文件夾,雙擊運(yùn)行程序,除非你設(shè)置了所依賴的dll的環(huán)境變量,否則程序仍然無法運(yùn)行,因為程序無法找到dll模塊。你可以手動把這些.dll拷貝到.exe文件所在的文件夾,但現(xiàn)在有一個更好的辦法,如下圖:
我們可以在上面的命令行中填寫我們在重新生成完程序后,執(zhí)行的命令。我們可以在這里使用copy命令,來將程序需要的.dll文件自動拷貝到.exe文件所在的目錄。當(dāng)然,在這里你可以做更多的事情,比如如果你的程序需要讀取配置文件,你也可以把配置文件拷貝過來等。
最后,把配置由Debug改變Release再將Release下的所有這些設(shè)置重新設(shè)置成Debug相同的就可以了。
路徑推薦使用編譯器提供給我們的宏變量,而盡量不要使用絕對的名稱,這樣程序更具有移植性。例如,如果某外部庫的目錄為Win32\Debug與Win32\Release或Win64\Debu與Win64\Release。這樣我們使用$(Platform)\$(Configuration)進(jìn)行設(shè)置的時候就不需要再去管什么平臺以及是Debug還是Release版本。因為編譯器會自動為我們切換,當(dāng)選擇Debug進(jìn)行編譯時,編譯器會自動鏈接到Debug版本,當(dāng)選擇Release進(jìn)行編譯時,會自動鏈接到Release版本。
還要注意的就是,如果有某些項目是作為導(dǎo)出鏈接庫用的。需要把導(dǎo)出的dll, lib(即輸出文件路徑)設(shè)置到上面的Bin目錄下。然后在需要使用導(dǎo)出的dll和lib文件的項目中設(shè)置
項目依賴項這前者,并設(shè)置附加庫目錄和附加依賴項。這樣可以很方便的使用同一解決方案中其他項目導(dǎo)出的鏈接庫了。
以上就是我們一般需要設(shè)置的項目屬性。
?
總結(jié)
以上是生活随笔為你收集整理的vs中c++项目的配置的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MyBatis : Mapper 接口
- 下一篇: s3c2440移植MQTT