1. 程式人生 > >VS20XX VC++設定相對路徑

VS20XX VC++設定相對路徑

在D:\Code目錄下有一個test的專案,專案結構如下圖:

└─test
    │  test.sln
    │  
    ├─pic
    │      pic.bmp
    │      
    └─test
        │  test.cpp
        │  test.vcxproj
        │  
        └─xxxx

                xxxx.h

此圖可用CMD命令tree /f >tree.txt生成,詳見https://blog.csdn.net/masterft/article/details/1671672

現在工程中想使用xxxx.h 以及 pic.bmp方法如下:

工程屬性--》屬性頁--》VC++目錄

1.使用絕對路徑

d:\Code\test\pic\pic.bmp

d:\Code\test\test\xxxx\xxxx.h

此方法雖然簡單,但是如果其他人拷貝你的工程到其他機器上就可能無法執行,這個是因為你在建工程時可能把工程放在了D:盤,但是其他人可能會把工程放在其他根目錄下,這樣會導致找不到標頭檔案問題。

因此我們最好設定相對路徑。

對於新手,在設定絕對路徑時往往會犯渾,他們不清楚這裡的“相對”究竟是以什麼位置為起點。其實這裡的相對路徑就是相當於工程檔案(test.vcproj)為起點零計算出的能找到包含所需標頭檔案(也就是找包含所需標頭檔案的include目錄)的路徑。


如上的例子中要找到xxxx.h 則相對路徑為 .\xxxx\xxxx.h

找到pic.bmp 則相對路徑為 ..\pic\pic.bmp

要包含標頭檔案只用在vc++目錄設定如下即可:


程式碼中寫上:

#include "xxxx.h"

另外一種方法:

vs20XX 系列工程中有很多巨集會代表一定的路徑,如上圖點選巨集按鈕,可看到:


不同的名稱代表了不同的值。

其實$(ProjectDir) 即代表了工程路徑d:\Code\test\test\

所以包含目錄也可以寫成$(ProjectDir)\xxxx

這樣設定之後,工程隨便拷到那個目錄就能一次性編譯成功,再也不會找不到標頭檔案了。