猿问

我的问题是:如何修改 VC++ Directories 设置才能避免这种情况?

前提:有一个放在 Git 上的 Visual C++ 2012 Express 工程,需要引用外部的 libcurl 库(没有包含在版本库中)。

当前使用的引用的方法是在工程属性 VC++ Directories 里的 Include Directories 和 Library Directories 添加我机器上的相应路径(D:\libcurl\XXX)。但这样一来,这个路径就保存在了 .vcxproj 工程文件里。

如果别人的 libcurl 路径与我不同,那么他 clone 后想要成功编译工程只能:

  1. 修改工程属性中的路径(工程文件变为被修改的状态,潜在的冲突/强迫症)

  2. 把自己的 libcurl 放到 D:\libcurl\XXX(不灵活,强制指定了路径)

(如果是 Visual C++ 2008 之前的版本,那么可以在 Tools->Options 里设置全局的 VC++ Directories。从而可以不修改工程文件,而是把自定义的外部库路径加到自己的全局设置里。但新版本中已经没有办法这样做了。)


凤凰求蛊
浏览 213回答 2
2回答

繁星coding

一般的做法是定义成环境变量,比如LIBCURL_INCPATHLIBCURL_LIBPATH然后加入工程路径$(LIBCURL_INCPATH)$(LIBCURL_LIBPATH)当然直接修改vcxproj也不大好, 所以最好用Property Manager, 放到一个.props的文件中,比如:<?xml&nbsp;version="1.0"&nbsp;encoding="utf-8"?><Project&nbsp;ToolsVersion="4.0"&nbsp;xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> &nbsp;&nbsp;<PropertyGroup&nbsp;Label="Globals"> &nbsp;&nbsp;&nbsp;&nbsp;<IncludePath>$(LIBCURL_INCPATH);$(IncludePath)</IncludePath> &nbsp;&nbsp;&nbsp;&nbsp;<LibraryPath>$(LIBCURL_LIBPATH);$(LibraryPath)</LibraryPath> &nbsp;&nbsp;</PropertyGroup></Project>另外,如果会CMake,&nbsp;GYP之类的工具, 就简单多了,工程文件直接生成就行了。

慕标琳琳

vs2008貌似把目录设置移到了项目属性里面.来说下我的办法:1>使用VC++目录(项目属性)-这个需要改动工程文件2>使用符号链接,我把所有的sdk目录固定在c:/sdk.如果机器上的sdk目录不在c:/sdk里,通过符号链接映射过去好处:不用改工程设置,不用在乎sdk的目录设置,而且方便sdk版本切换
随时随地看视频慕课网APP
我要回答