Visual C ++:LINK:致命错误LNK1104:无法打开文件'libboost_system-vc120-mt-gd-1_55.lib'

时间:2017-05-17 02:18:45

标签: c++ visual-studio boost

我在

中解压缩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相关联。路径正确,因为我已b2.exe切换install。此外,选项(C ++→常规→附加包含目录参数)与旧的Visual Studio IDE相关。我知道解释这些基础知识是非常愚蠢的。但不幸的是,我看到强烈坚持这种联系。

更新

令人遗憾的是,一群用户在知道错误的情况下通过链接到错误的问题将此问题标记为重复。如果你犯了错误,不要坚持。

1 个答案:

答案 0 :(得分:3)

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