致命错误LNK1104:无法打开文件 'libboost_system-vc110-MT-G

2019-05-12 23:57发布

我似乎无法得到这个工作。 我做了一个简单的控制台应用程序(这取决于websocket++库),这需要Boost库..但是,当我尝试编译,我得到:

致命错误LNK1104:无法打开文件 'libboost_system-vc110-MT-GD-1_51.lib'

然而,我这创造在lib的的bjam (boost_root)/stage/libs和我联的路径,库到编译器C++/Additionnals includes

如果我看的(boost_root)/stage/libs文件libboost_system-vc110-mt-gd-1_51.lib是不存在的。 这就是所谓的libboost_system-vc110-mt-sgd-1_51.lib代替。

任何的想法?

Answer 1:

C ++→常规→附加包含目录参数是列出目录编译器将头文件搜索。

你需要告诉链接到哪里寻找库链接。 要访问此设置,在解决方案资源管理器窗口,然后选择属性→链接→常规→附加库目录中的项目名称上单击右键。 输入<boost_path>\stage\lib这里(这是哪里,如果你的库所在的路径建立升压使用默认选项)。



Answer 2:

这对于像我这样一个业余谁正在研究自己的C ++最简单的方法:

首先解压Boost库到您选择的任何目录。 我建议c:\directory

  1. 打开Visual C ++。
  2. 创建一个新项目。
  3. 右键单击该项目。
  4. 点击属性。
  5. 单击C / C ++。
  6. 点击一般。
  7. 选择其他包括图书馆。
  8. 包括图书馆目的地。 如c:\boost_1_57_0
  9. 单击预编译头。
  10. 点击创建/使用预编译头。
  11. 选择不使用预编译头。

然后到对面的链接库中,你经历过你的问题。

  1. 转到为提取的文件是c:\boost_1_57_0
  2. 点击booststrap.bat (不打扰到命令窗口上键入只是等待,不收就是我有我的问题,我花了两个星期的时间解决的地方窗口。过了一会儿, booststrap将运行并产生相同的文件,但现在有两个不同的名字: b2bjam
  3. 单击b2 ,等待它运行。
  4. 点击bjam并等待它运行。 然后,一个文件夹会产生所谓的stage
  5. 右键单击该项目。
  6. 点击属性。
  7. 点击链接。
  8. 点击一般。
  9. 点击包括附加库目录。
  10. 选择库如部分c:\boost_1_57_0\stage\lib

你是好去!



Answer 3:

我有同样的问题。 它造成的,因为我编译在Visual C ++ 2010(V100)的加速,我试图用库错误在Visual Studio 2012(V110)。

所以,我改变了配置(在Visual Studio 2012)将项目属性 - > 常规 - > Plataform工具集 ,并从Visual Studio 2012(V110)的值更改为Visual Studio 2010中(V100)。



Answer 4:

然而,另一种解决方案:

我很困惑,因为我包括boost_regex-VC120-MT-GD-1_58.lib在我的链接 - >附加依赖属性,但该链接不停地告诉我它无法打开libboost_regex-VC120-MT-GD-1_58.lib(注意的lib前缀)。 我没有指定libboost_regex-VC120-MT-GD-1_58.lib。

我试图用(和已建成)的升压动态库(.DLL文件),但没有足够的BOOST_ALL_DYN_LINK宏定义。 显然有在编译提示,包括图书馆,没有BOOST_ALL_DYN_LINK它查找静态库(与LIB前缀),而不是动态库(没有一个lib前缀)。



Answer 5:

我有同样的问题,我的错误是,我已经安装了二进制boost_1_55_0-MSVC-11.0-32.exe用Visual C ++ 2010,其具有的版本V100(项目属性 - > ConfiguratioProperties->常规 - > platformTooset)不V110使用作为VISUAL C ++ 2012所以我dowloaded boost_1_55_0-MSVC-10.0-32.exe现在一切正常为止。



Answer 6:

如果你有麻烦建筑升压或不喜欢这样做,另一种是从下载LIB文件SourceForge上 。 该链接将带您到的压缩lib和DLL文件的文件夹为1.51版本。 但是,你应该能够编辑指定的首选版本的链接。 显然,从BoostPro安装有一些问题。



Answer 7:

尝试使用升压单元测试Visual Studio 2015年 (社区版),当我有一个类似的问题:

致命错误LNK1104:libboost_unit_test_framework-vc140-MT-1_57

所以我想我会分享我的解决方案。

您可以通过以下两种方式创建一个升压单元测试项目(这个解决方案适用于两者):

  1. 使用压单元测试适配器
  2. 或通过创建一个Win32控制台应用程序( 步骤这里 )中,用升压单元测试功能(代主函数这里步骤 )。

下面是我跟着获得这两个项目的工作步骤:

首先,下载所需增压版本(例如, boost_1_57_0 )。 您可以下载升压用正确的二进制文件(使用MSVC V140编译),或通过从命令行运行以下命令自己提取二进制文件:

  1. bootstrap.bat
  2. “C:\ Program Files文件(x86)的\微软的Visual Studio 14.0 \ VC \ vcvarsall.bat” 86
  3. 的bjam --clean
  4. 的bjam -j4 --debug符号=上--build型=完整的工具= MSVC-14.0线程=多运行时链接=共享地址模型= 32

MSVC-14.0指明了我们需要的Visual Studio 2015年版(2015年VS = v14.0 = V140),和地址模式= 32所指明了我们需要的平台32(但同样可以为64位来实现)。

一旦你的二进制文件,去到Visual Studio中,选择已创建的升压单元测试项目。 转到项目属性>配置 (从主菜单中),然后进行以下选择:

  • 设置“ 常规>平台工具集 ”到Visual Studio 2015年(V140)。

  • 包括路径到升压文件夹(例如C:\ boost_1_57_0)和含有该二进制文件的路径的子文件夹(例如,C:\ boost_1_57_0 \阶段\ lib中)中:

    • “C \ C ++>附加包含目录
    • 和“ 链接>附加库目录 ”。


Answer 8:

我在这里同样的问题的报道。 我解决了从子文件夹的src / mainTest /到主文件夹SRC移动mainTest.cpp问题/我想这是你的问题太多。



Answer 9:

2>LINK : fatal error LNK1104: cannot open file 'libboost_regex-vc120-mt-sgd-1_55.lib

在我的情况下,引导/ bjam的不可用(文库进行预编译,并致力于SCM)上继承老项目。 图书馆没有VC或在其文件名如BOOST版本: libboost_regex-mt-sgd.lib ,但是Processed /DEFAULTLIB:libboost_regex-vc120-mt-sgd-1_55.lib莫名其妙地被自动触发。

通过手动添加非版本文件名固定:

<AdditionalDependencies>$(DK_BOOST)\lib64\libboost_regex-mt-sgd.lib</AdditionalDependencies>

和黑名单的...vc120-mt-sgd-1_55.lib

<IgnoreSpecificDefaultLibraries>libboost_regex-vc120-mt-sgd-1_55.lib</IgnoreSpecificDefaultLibraries>


文章来源: fatal error LNK1104: cannot open file 'libboost_system-vc110-mt-gd-1_51.lib'
标签: c++ boost