我似乎无法得到这个工作。 我做了一个简单的控制台应用程序(这取决于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
代替。
任何的想法?
在C ++→常规→附加包含目录参数是列出目录编译器将头文件搜索。
你需要告诉链接到哪里寻找库链接。 要访问此设置,在解决方案资源管理器窗口,然后选择属性→链接→常规→附加库目录中的项目名称上单击右键。 输入<boost_path>\stage\lib
这里(这是哪里,如果你的库所在的路径建立升压使用默认选项)。
这对于像我这样一个业余谁正在研究自己的C ++最简单的方法:
首先解压Boost库到您选择的任何目录。 我建议c:\directory
。
- 打开Visual C ++。
- 创建一个新项目。
- 右键单击该项目。
- 点击属性。
- 单击C / C ++。
- 点击一般。
- 选择其他包括图书馆。
- 包括图书馆目的地。 如
c:\boost_1_57_0
。 - 单击预编译头。
- 点击创建/使用预编译头。
- 选择不使用预编译头。
然后到对面的链接库中,你经历过你的问题。
- 转到为提取的文件是
c:\boost_1_57_0
。 - 点击
booststrap.bat
(不打扰到命令窗口上键入只是等待,不收就是我有我的问题,我花了两个星期的时间解决的地方窗口。过了一会儿, booststrap
将运行并产生相同的文件,但现在有两个不同的名字: b2
和bjam
。 - 单击
b2
,等待它运行。 - 点击
bjam
并等待它运行。 然后,一个文件夹会产生所谓的stage
。 - 右键单击该项目。
- 点击属性。
- 点击链接。
- 点击一般。
- 点击包括附加库目录。
- 选择库如部分
c:\boost_1_57_0\stage\lib
。
你是好去!
我有同样的问题。 它造成的,因为我编译在Visual C ++ 2010(V100)的加速,我试图用库错误在Visual Studio 2012(V110)。
所以,我改变了配置(在Visual Studio 2012)将项目属性 - > 常规 - > Plataform工具集 ,并从Visual Studio 2012(V110)的值更改为Visual Studio 2010中(V100)。
然而,另一种解决方案:
我很困惑,因为我包括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前缀)。
我有同样的问题,我的错误是,我已经安装了二进制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现在一切正常为止。
如果你有麻烦建筑升压或不喜欢这样做,另一种是从下载LIB文件SourceForge上 。 该链接将带您到的压缩lib和DLL文件的文件夹为1.51版本。 但是,你应该能够编辑指定的首选版本的链接。 显然,从BoostPro安装有一些问题。
尝试使用升压单元测试在Visual Studio 2015年 (社区版),当我有一个类似的问题:
致命错误LNK1104:libboost_unit_test_framework-vc140-MT-1_57
所以我想我会分享我的解决方案。
您可以通过以下两种方式创建一个升压单元测试项目(这个解决方案适用于两者):
- 使用压单元测试适配器
- 或通过创建一个Win32控制台应用程序( 步骤这里 )中,用升压单元测试功能(代主函数这里步骤 )。
下面是我跟着获得这两个项目的工作步骤:
首先,下载所需增压版本(例如, boost_1_57_0 )。 您可以下载升压用正确的二进制文件(使用MSVC V140编译),或通过从命令行运行以下命令自己提取二进制文件:
- bootstrap.bat
- “C:\ Program Files文件(x86)的\微软的Visual Studio 14.0 \ VC \ vcvarsall.bat” 86
- 的bjam --clean
- 的bjam -j4 --debug符号=上--build型=完整的工具= MSVC-14.0线程=多运行时链接=共享地址模型= 32
当MSVC-14.0指明了我们需要的Visual Studio 2015年版(2015年VS = v14.0 = V140),和地址模式= 32所指明了我们需要的平台32(但同样可以为64位来实现)。
一旦你的二进制文件,去到Visual Studio中,选择已创建的升压单元测试项目。 转到项目属性>配置 (从主菜单中),然后进行以下选择:
我在这里同样的问题的报道。 我解决了从子文件夹的src / mainTest /到主文件夹SRC移动mainTest.cpp问题/我想这是你的问题太多。
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'