$(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
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