【问题标题】:Visual C++: LINK : fatal error LNK1104: cannot open file 'libboost_system-vc120-mt-gd-1_55.lib' [duplicate]Visual C++:链接:致命错误 LNK1104:无法打开文件“libboost_system-vc120-mt-gd-1_55.lib”[重复]
【发布时间】:2017-10-16 07:13:21
【问题描述】:

我将Boost库解压到

C:\升压

跑了

bootstrap.bat
b2.exe install

通过 Visual Studio 2017 的开发人员命令提示符。

它为我创建了两个文件夹:

C:\boost\include
C:\boost\lib

我添加到的

VC++ Directories > Include Directories
Linker > General > Additional Library Directories

分别。

现在,构建以下代码:

#define _WIN32_WINDOWS 0x0501
#define _WINSOCK_DEPRECATED_NO_WARNINGS

#include <boost/asio.hpp>

int main()
{
    return 0;
}

产生以下错误:

1>main.cpp
1>Unknown compiler version - please run the configure tests and report the results
1>LINK : fatal error LNK1104: cannot open file 'libboost_system-vc120-mt-gd-1_55.lib'

令我惊讶的是,VC++ 查找 libboost_system-vc120-mt-gd-1_55.lib 而构建的 lib 文件是:

libboost_system-vc-mt-1_55.lib
libboost_system-vc-mt-gd-1_55.lib

缺少一个数字。是否与Boost构建时弹出的警告有关?

未知的编译器版本 - 请运行配置测试并报告结果


更新:

请不要将此问题链接到here。路径是正确的,因为我使用 install 开关运行了 b2.exe。此外,选项(C++ → General → Additional Include Directories 参数)与旧的 Visual Studio IDE 有关。我知道解释这些基础知识是非常愚蠢的。但不幸的是,我看到强烈要求这种链接。

更新:

很遗憾,一群用户通过链接到错误的问题而将此问题标记为重复,而他们知道自己错了。如果你犯了错误,不要坚持。

【问题讨论】:

  • 也许使用latest boost 1.64 会更好
  • @KenWhite,我选择的路径是绝对正确的。另一条路径产生同样的错误。
  • @KenWhite,你用过 C++ 吗?
  • 很遗憾,您坚持咆哮而不是给出明确的技术描述,为什么这个重复在这里不适用。如果您想在这里受到尊重,请尝试对组成这个社区的人表示尊重。

标签: c++ visual-studio boost


【解决方案1】:

是的,这很可能是相关的。 Boost build 无法确定 Visual Studio 编译器版本,因此它正在编写通用的 lib 名称,例如 libboost_system-vc-mt-1_55.lib。 Header 正在尝试使用最新版本的 Visual Studio,用于 Boost 1.55(即 VS2013 或 vs120)。尝试使用last版本的boost,应该支持VS2017。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-22
    • 2012-10-14
    • 2011-06-14
    • 2014-04-23
    • 2014-06-21
    • 2015-09-17
    • 1970-01-01
    • 2016-10-01
    相关资源
    最近更新 更多