链接器需要lib-files名称中的编译器和Boost版本。致命错误LNK1104

时间:2016-09-29 23:52:35

标签: c++ visual-c++ boost

要安装boost我运行

b2 install optimization=speed variant=debug,release --layout=tagged --prefix=BOOST_DIR

lib文件的名称类似于

...
libboost_serialization-mt.lib
libboost_serialization-mt-gd.lib
...

当项目链接时,我收到错误

  

LINK:致命错误LNK1104:无法打开文件' libboost_serialization-vc140-mt-gd-1_62.lib'

此项目未在项目设置中设置任何名称,仅设置此文件的目录。如果我将编译器和Boost版本添加到文件名,则项目成功链接 当我安装Boost的新版本时,我可以让项目不需要Boost lib-files重命名吗?

1 个答案:

答案 0 :(得分:5)

使用--layout=tagged选项构建boost时,必须在包含任何boost标头之前定义BOOST_AUTO_LINK_TAGGED以允许自动链接正常工作。否则,通过定义BOOST_ALL_NO_LIB并显式指定库来禁用自动链接。