Boost:链接由bjam命名的库时出现致命错误LNK1104
Boost: fatal error LNK1104 when linking a lib named by bjam
我们使用bjam
构建具有以下参数的boost
库
bjam --prefix=.vs2012x86static --includedir=.include --build-dir=.buildvs2012x86 --layout=system --build-type=minimal --without-mpi --without-python toolset=msvc-11.0 variant=release threading=multi link=static runtime-link=shared define=_BIND_TO_CURRENT_VCLIBS_VERSION address-model=32 install
因此,库名称看起来像libboost_unit_test_framework.lib
。但在构建项目时,我得到了fatal error LNK1104: cannot open file 'libboost_unit_test_framework-vc110-mt-1_53.lib'
好吧,我尝试了LNK1104链接问题的几乎所有解决方案,例如这里建议的,但没有任何帮助。你知道出了什么问题吗?这是我的测试代码
#define BOOST_TEST_MODULE MyClass test
#include <boost/test/unit_test.hpp>
#include "myclass.h"
BOOST_AUTO_TEST_CASE(Calc_Test)
{
MyClass* c = new MyClass();
BOOST_CHECK(c);
}
您使用的是--layout=system
,它在构建结果上没有标记。当您使用标题时,您不会禁用自动链接功能(通过定义BOOST_ALL_NO_LIB
)。任一:
- 删除
--layout=system
选项,或 - 通过定义
BOOST_ALL_NO_LIB
禁用自动链接,并手动将*.lib文件添加到链接中
您已启用boost自动链接。
使用以下定义禁用此选项:BOOST_ALL_NO_LIB
。
请参阅此处了解有关该主题的更多信息。
相关文章:
- 链接:致命错误LNK1104:无法打开文件"python37_d.lib"
- 在 Windows 10 下使用 GTest 的 CMake - 致命错误 LNK1104:无法打开文件"gtest.lib",但存在调试"gtestd.lib"
- 致命错误LNK1104:无法打开文件"libboost_log-vc141-mt-gd-1_64.lib"
- 为什么当我在Visual Studio中编译C++项目时会出现致命错误"LNK1104:无法打开文件'cryptlib.lib'?
- 链接:致命错误LNK1104:无法打开文件'boost_program_options.lib'
- 致命错误LNK1104:无法打开.lib(GLOLAS)
- 致命错误LNK1104:无法打开文件'libboost_system-vc110-mt-gd-1_51.lib'
- 链接: 致命错误 LNK1104: 无法打开文件 'msmpi.lib' Visual Studio 2010
- Boost:链接由bjam命名的库时出现致命错误LNK1104
- 致命错误LNK1104:无法打开文件
- Visual C++, 链接 : 致命错误 LNK1104: 无法打开文件.
- 致命错误LNK1104:无法打开文件'opencv_calib3d220d.obj'
- 致命错误LNK1104 C++
- VS2013 C++链接:致命错误LNK1104:无法打开文件'mfc110ud.lib'
- 1>链接:致命错误LNK1104:无法打开文件
- 将MS C++与“英特尔Fortran”链接时出现致命错误LNK1104(找不到.lib文件)
- 链接器需要在lib文件的名称中包含编译器和Boost的版本.致命错误LNK1104
- OpenCV错误:"链接:致命错误LNK1104:无法打开文件'opencv_core300d.lib'"
- 链接:致命错误LNK1104:无法打开文件"libboost_system-vc90-mt-1_45.lib"
- 链接:致命错误LNK1104:无法打开文件'opencv_calib3d248d.obj'