【VS】項目屬性配置

首先,我們一般不會修改解決方案的屬性,而是設置每個項目各自的屬性.

接着上一篇文章,我們來看看我們應該怎樣來設置各項目的項目屬性更好:

我們以NYOJ_001項目的Debug版的設置爲例:

在常規選項裏,我們一般會設置輸出目錄(即生成.exe文件的目錄),中間目錄(即中間文件的目錄)。當然你也可以在這裏設置生成的.exe文件的文件名甚至擴展名等。

如下圖所示:


一般設置如下的目錄:如果不記得某個宏變量的值,可以點擊“宏(M)>>”來查看。


既然我們修改了輸出文件的目錄,那我們也必須修改我們的調試目錄,不然就無法調試了。不信你運行一下試試,雖然編譯通過了,但並沒像你想的那樣出現控制檯的“黑窗口”,原因就是我們沒有修改調試目錄:

將調試目錄修改爲$(OutDir)就可以了,$(OutDir)就是我們之前在常規裏設置的輸出文件的目錄:

這裏面的命令參數一項也是比較重要的,如果你開發的是一個帶有命令行參數的項目,你調試的時候就可以在這裏設置傳給程序的命令行參數來進行調試了。你是否還記得你運行一個帶有命令行參數的程序時是出現一個黑框框然後馬上就消失了,什麼也不會做,除非你是將該程序拖到命令提示符下運行。


這些設置完後,可以先編譯運行一下程序,結果如下所示:


程序可以正常調試,還會在解決方案的根目錄下生成我們設置的輸出文件的目錄:Win32\Debug\Bin,生成的.exe文件就在該目錄下。還有中間文件目錄:Win32\Debug\XXX,裏面放的都是生成的中間文件。如果你的這個項目裏用到了其他的庫,你還需要像下面這樣設置你的項目的附加包含目錄和附加庫目錄:前都是設置其他庫的.h頭文件的目錄,一般放在庫的include文件夾下。後者是設置其他庫的lib以及.dll鏈接庫的目錄,一般放在庫的lib下。如下:




最後你還必須設置項目的附加依賴項的值:一般設置的就是xx.lib靜態鏈接庫的名稱


好了,所有必須設置的都已經設置完成了。


下面還有一個非常有用的設置,我們知道當我們的程序使用在其他的庫的dll文件時,在程序的當前目錄或環境變量指定的目錄中必須能夠找得到這些.dll文件,即現在我們打開.exe文件所在的Bin文件夾,雙擊運行程序,除非你設置了所依賴的dll的環境變量,否則程序仍然無法運行,因爲程序無法找到dll模塊。你可以手動把這些.dll拷貝到.exe文件所在的文件夾,但現在有一個更好的辦法,如下圖:


我們可以在上面的命令行中填寫我們在重新生成完程序後,執行的命令。我們可以在這裏使用copy命令,來將程序需要的.dll文件自動拷貝到.exe文件所在的目錄。當然,在這裏你可以做更多的事情,比如如果你的程序需要讀取配置文件,你也可以把配置文件拷貝過來等。


最後,把配置由Debug改變Release再將Release下的所有這些設置重新設置成Debug相同的就可以了。


路徑推薦使用編譯器提供給我們的宏變量,而儘量不要使用絕對的名稱,這樣程序更具有移植性。例如,如果某外部庫的目錄爲Win32\Debug與Win32\Release或Win64\Debu與Win64\Release。這樣我們使用$(Platform)\$(Configuration)進行設置的時候就不需要再去管什麼平臺以及是Debug還是Release版本。因爲編譯器會自動爲我們切換,當選擇Debug進行編譯時,編譯器會自動鏈接到Debug版本,當選擇Release進行編譯時,會自動鏈接到Release版本。


還要注意的就是,如果有某些項目是作爲導出鏈接庫用的。需要把導出的dll, lib(即輸出文件路徑)設置到上面的Bin目錄下。然後在需要使用導出的dll和lib文件的項目中設置

項目依賴項這前者,並設置附加庫目錄和附加依賴項。這樣可以很方便的使用同一解決方案中其他項目導出的鏈接庫了。


以上就是我們一般需要設置的項目屬性。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章