Boost:链接由 bjam 命名的库时出现致命错误 LNK1104
Boost: fatal error LNK1104 when linking a lib named by bjam
我们使用 bjam
使用以下参数构建 boost
库
bjam --prefix=.\vs2012\x86\static --includedir=.\include --build-dir=.\build\vs2012\x86 --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 的解决方案,例如建议 here,但没有任何帮助。你知道出了什么问题吗?这是我的测试代码
#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);
}
您已启用提升自动链接。
使用以下定义禁用此选项:BOOST_ALL_NO_LIB
.
请参阅 here 有关该主题的更多信息。
您正在使用 --layout=system
,它在构建结果中没有标记。当您使用 headers 时,您不会禁用 auto-link 功能(通过定义 BOOST_ALL_NO_LIB
)。或者:
- 删除
--layout=system
选项,或
- 通过定义
BOOST_ALL_NO_LIB
禁用 auto-link 并手动将 *.lib 文件添加到您的 link.
我们使用 bjam
使用以下参数构建 boost
库
bjam --prefix=.\vs2012\x86\static --includedir=.\include --build-dir=.\build\vs2012\x86 --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 的解决方案,例如建议 here,但没有任何帮助。你知道出了什么问题吗?这是我的测试代码
#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);
}
您已启用提升自动链接。
使用以下定义禁用此选项:BOOST_ALL_NO_LIB
.
请参阅 here 有关该主题的更多信息。
您正在使用 --layout=system
,它在构建结果中没有标记。当您使用 headers 时,您不会禁用 auto-link 功能(通过定义 BOOST_ALL_NO_LIB
)。或者:
- 删除
--layout=system
选项,或 - 通过定义
BOOST_ALL_NO_LIB
禁用 auto-link 并手动将 *.lib 文件添加到您的 link.