1. 程式人生 > >VS中VC++目錄中的$是什麼意思

VS中VC++目錄中的$是什麼意思

$(VC_ExecutablePath_x64);  //專案是x64平臺
$(WindowsSDK_ExecutablePath);
$(VS_ExecutablePath);
$(MSBuild_ExecutablePath);
$(VC_IncludePath);
$(VCInstallDir)UnitTest\include;
etc.
$是巨集替換符號,後面的字元都巨集(Micro)

隨便對專案屬性->VC++下的某一個目錄進行編輯,都會在右下角看到一個“巨集”,點開之後就可以看到了。某一些是從環境變數中繼承的,比如PROCESSOR_IDENTIFIER:Intel64 Family 6 Model 58 Stepping 9, GenuineIntel和CUDA_PATH。

原回答:https://social.msdn.microsoft.com/Forums/en-US/11b7b72d-d093-41c4-9310-3dd944d5e3e8/vc-directories?forum=vcgeneral

既然說到這了,那就把VC++的這些個目錄和巨集再理解一下:
1.可執行檔案目錄:生成VC++專案期間,搜尋可執行檔案時使用的路徑
  1.1 $(VC_ExecutablePath_x64):D:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin,這裡包含了VS的編譯器cl.exe、連結器lk.exe和相應的dll。
  1.2 $(WindowsSDK_ExecutablePath): c:\Program Files (x86)\Windows Kits\8.1\bin\x64\ ,這裡包含了Windows Driver Kit(WDK)
  1.3 $(PATH):這個是環境變數->系統變數->PATH一致。包含了c:\Windows\System32,D:\opencv\build\x86\vc12\bin,D:\opencv\build\x64\vc12\bin等,這裡存放的也是一些DLL檔案。將工程Build後,Exe檔案會動態載入其中的dll。這裡面有個問題就是如果這些Path中有重複的檔案怎麼辦,載入哪一個?
2.包含目錄:生成VC++專案期間,搜尋包含檔案時使用的路徑
  2.1 $(VC_IncludePath):包含了VC的一些.h檔案,比如stdio.h和sstream等。
  2.2 $(WindowsSDK_IncludePath):WDK的一些標頭檔案
  2.3 其他:比如我們新增的OpenCV的一些標頭檔案路徑D:\opencv\build\include\opencv\
3.庫目錄:生成VC++專案期間,搜尋庫檔案時使用的路徑
  3.1 $(VC_LibraryPath_x64):包含了VC的一些.lib檔案
  3.2 $(WindowsSDK_LibraryPath_x64):包含了WDK的一些lib檔案
  3.3 其他:我們新增的OpenCV的一些Lib路徑,比如d:\opencv\build\lib\Debug;D:\opencv\build\install\x64\vc12\lib
  注意,庫目錄只是指明瞭lib的路徑,具體用哪一個lib,需要在連結器->附加依賴項中新增,比如opencv_calib3d249d.lib等。
  已經有了庫目錄,為什麼還要附加依賴項?下面有兩個解釋,不妨參考下:
  http://stackoverflow.com/questions/4066405/when-to-use-the-visual-studio-additional-dependencies
  https://www.zhihu.com/question/21735299