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

标签 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;

我只想了解拥有两个不同变量的基本原理——比 LIBPATH 带来更多库的明显事实要多一点。我试过查找它,但我没有找到链接器和/或开发环境何时使用每个的明确定义。

最佳答案

LIB用于链接器,帮助它找到导入和静态库。
LIBPATH用于编译器,帮助它查找元数据文件。像类型库、.NET 程序集、WinRT .winmd 文件。

关于visual-studio - MS Visual C/C++ 的 LIB 和 LIBPATH 环境变量有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20483619/

相关文章:

windows - 为什么 x64 项目使用默认的打包对齐方式 16?

c# - 如何查询所有现有字段的元数据

mysql - 将 MySql Provider 与 Entity Framework 模型结合使用

vb.net - 随机索引生成器

c++ - map 的查找功能有困难

c - 使用 MSVC 从命令行构建 DLL(无入口点)

c++ - STL codecvt 错误 c++

c# - 我可以将 Visual Studio 设置为卸载所有项目,而不是选择 1 个项目并仅递归加载其依赖项吗?

C# 抑制 MS Fakes 警告

c++ - 在 Visual C++ 6.0 中跟踪变量变化