【问题标题】:What is the difference between the LIB and LIBPATH environment variables for MS Visual C/C++?MS Visual C/C++ 的 LIB 和 LIBPATH 环境变量有什么区别?
【发布时间】:2013-12-10 00:19:22
【问题描述】:

我一直在编写一些构建脚本,这让我很烦。我想确保我们独立于环境设置,但为了确保这一点,我觉得有必要了解这些工具如何/在何处使用这些设置。

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 引入更多库这一显而易见的事实要多一点。我已经尝试查找它,但我还没有找到链接器和/或开发环境何时使用每个的明确定义。

【问题讨论】:

    标签: visual-studio visual-c++ visual-studio-2012


    【解决方案1】:

    LIB 用于链接器,帮助它找到导入库和静态库。

    LIBPATH 用于编译器,帮助它查找元数据文件。像类型库、.NET 程序集、WinRT .winmd 文件。

    【讨论】:

    • 然而 /LIBPATH 是覆盖环境的链接器命令行的一个选项。啊哈!...我现在看到了。 Doc 指示 /LIBPATH 覆盖 LIB 环境变量,而不是 LIBPATH 环境变量。这只是名字的(坏)巧合。谢谢。
    猜你喜欢
    • 2010-11-24
    • 2011-05-24
    • 2010-11-01
    • 1970-01-01
    • 2017-01-19
    • 2011-02-21
    • 2017-08-06
    • 2015-01-10
    • 1970-01-01
    相关资源
    最近更新 更多