2013-12-10 91 views
15

我一直在編寫一些構建腳本,而這正在擾亂我。我想確保我們獨立於環境設置,但爲了確保我覺得有必要了解這些工具如何/在哪裏使用這些設置。MS Visual C/C++的LIB和LIBPATH環境變量有什麼區別?

Visual Studio命令提示符和/或vcvarsall.bat文件設置了兩個不同的環境變量:LIB和LIBPATH。這些值是不同的,但部分重疊。下面是我的系統值:

LIB=C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\LIB;C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\ATLMFC\LIB;C:\Program Files (x86)\Windows Kits\8.0\lib\win8\um\x86; 

LIBPATH=C:\Windows\Microsoft.NET\Framework\v4.0.30319;C:\Windows\Microsoft.NET\Framework\v3.5;C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\LIB;C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\ATLMFC\LIB;C:\Program Files (x86)\Windows Kits\8.0\References\CommonConfiguration\Neutral;\Microsoft.VCLibs\11.0\References\CommonConfiguration\neutral; 

我只是想了解的理由有兩個不同的變量 - 不是明顯的事實是LIBPATH更多的庫帶來多一點。我嘗試過查找它,但是我還沒有找到每個鏈接器和/或開發環境何時使用的明確定義。

回答

17

LIB是爲鏈接器,幫助它找到導入和靜態庫。

LIBPATH是爲編譯器,幫助它找到元數據文件。像類型庫,.NET程序集,WinRT .winmd文件。

+6

而且/ LIBPATH是覆蓋環境的鏈接器命令行選項。啊哈......我現在看到了。 Doc指出/ LIBPATH覆蓋LIB環境變量,而不是LIBPATH環境變量。這只是名稱的一個(壞)巧合。謝謝。 –

相關問題