鳳凰求蠱
2023-04-15 13:09:59
前提:有一個(gè)放在 Git 上的 Visual C++ 2012 Express 工程,需要引用外部的 libcurl 庫(沒有包含在版本庫中)。當(dāng)前使用的引用的方法是在工程屬性 VC++ Directories 里的 Include Directories 和 Library Directories 添加我機(jī)器上的相應(yīng)路徑(D:\libcurl\XXX)。但這樣一來,這個(gè)路徑就保存在了 .vcxproj 工程文件里。如果別人的 libcurl 路徑與我不同,那么他 clone 后想要成功編譯工程只能:修改工程屬性中的路徑(工程文件變?yōu)楸恍薷牡臓顟B(tài),潛在的沖突/強(qiáng)迫癥)把自己的 libcurl 放到 D:\libcurl\XXX(不靈活,強(qiáng)制指定了路徑)(如果是 Visual C++ 2008 之前的版本,那么可以在 Tools->Options 里設(shè)置全局的 VC++ Directories。從而可以不修改工程文件,而是把自定義的外部庫路徑加到自己的全局設(shè)置里。但新版本中已經(jīng)沒有辦法這樣做了。)
2 回答

繁星coding
TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超4個(gè)贊
一般的做法是定義成環(huán)境變量,比如LIBCURL_INCPATH
LIBCURL_LIBPATH
然后加入工程路徑$(LIBCURL_INCPATH)
$(LIBCURL_LIBPATH)
當(dāng)然直接修改vcxproj也不大好, 所以最好用Property Manager
, 放到一個(gè).props
的文件中,比如:
<?xml version="1.0" encoding="utf-8"?><Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <PropertyGroup Label="Globals"> <IncludePath>$(LIBCURL_INCPATH);$(IncludePath)</IncludePath> <LibraryPath>$(LIBCURL_LIBPATH);$(LibraryPath)</LibraryPath> </PropertyGroup></Project>
另外,如果會(huì)CMake
, GYP
之類的工具, 就簡(jiǎn)單多了,工程文件直接生成就行了。

慕標(biāo)琳琳
TA貢獻(xiàn)1830條經(jīng)驗(yàn) 獲得超9個(gè)贊
vs2008貌似把目錄設(shè)置移到了項(xiàng)目屬性里面.
來說下我的辦法:
1>使用VC++目錄(項(xiàng)目屬性)-這個(gè)需要改動(dòng)工程文件
2>使用符號(hào)鏈接,我把所有的sdk目錄固定在c:/sdk.如果機(jī)器上的sdk目錄不在c:/sdk里,通過符號(hào)鏈接映射過去
好處:不用改工程設(shè)置,不用在乎sdk的目錄設(shè)置,而且方便sdk版本切換
- 2 回答
- 0 關(guān)注
- 272 瀏覽
添加回答
舉報(bào)
0/150
提交
取消