前提:有一个放在 Git 上的 Visual C++ 2012 Express 工程,需要引用外部的 libcurl 库(没有包含在版本库中)。
当前使用的引用的方法是在工程属性 VC++ Directories
里的 Include Directories
和 Library Directories
添加我机器上的相应路径(D:\libcurl\XXX
)。但这样一来,这个路径就保存在了 .vcxproj
工程文件里。
如果别人的 libcurl 路径与我不同,那么他 clone
后想要成功编译工程只能:
- 修改工程属性中的路径(工程文件变为被修改的状态,潜在的冲突/强迫症)
- 把自己的 libcurl 放到
D:\libcurl\XXX
(不灵活,强制指定了路径)
于是我的问题是:如何修改 VC++ Directories
设置才能避免这种情况?
(如果是 Visual C++ 2008 之前的版本,那么可以在 Tools->Options 里设置全局的 VC++ Directories
。从而可以不修改工程文件,而是把自定义的外部库路径加到自己的全局设置里。但新版本中已经没有办法这样做了。)
一般的做法是定义成环境变量,比如
LIBCURL_INCPATH
LIBCURL_LIBPATH
然后加入工程路径
$(LIBCURL_INCPATH)
$(LIBCURL_LIBPATH)
当然直接修改vcxproj也不大好, 所以最好用
Property Manager
, 放到一个.props
的文件中,比如:另外,如果会
CMake
,GYP
之类的工具, 就简单多了,工程文件直接生成就行了。