1. 程式人生 > >VS解決方案配置

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檔案的專案中設定

專案依賴項這前者,並設定附加庫目錄和附加依賴項。這樣可以很方便的使用同一解決方案中其他專案匯出的連結庫了。

以上就是我們一般需要設定的專案屬性。
--------------------- 
作者:Steven__Lee 
來源:CSDN 
原文:https://blog.csdn.net/lp310018931/article/details/49110069 
版權宣告:本文為博主原創文章,轉載請附上博文連結!