MS Visual C/C++的LIB和LIBPATH环境变量有什么区别?

Ric*_*rtz 23 visual-studio visual-c++ visual-studio-2012

我一直在研究一些构建脚本,这让我烦恼.我想确保我们独立于环境设置,但为了确保这一点,我觉得需要了解工具使用设置的方式/位置.

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;
Run Code Online (Sandbox Code Playgroud)

我只想理解有两个不同变量的基本原理 - 比LIBPATH带来更多lib的明显事实要多一点.我已经尝试过了,但我还没有找到关于链接器和/或开发环境何时使用它们的明确定义.

Han*_*ant 28

LIB 是为链接器,帮助它找到导入和静态库.

LIBPATH是为编译器,帮助它找到元数据文件.与类型库,.NET程序集,WinRT .winmd文件类似.

  • 然而/ LIBPATH是覆盖环境的链接器命令行的一个选项.啊哈!......我现在看到了.Doc表示/ LIBPATH会覆盖LIB环境变量,而不是LIBPATH环境变量.这只是一个(坏)巧合的名字.谢谢. (10认同)