C++ 如何指定要链接到哪个版本的boost库?
我正在尝试将一个用VS2012编写的项目迁移到VS2013 我成功地编译了Boost1.53.0(我第一次尝试了1.54.0,但出现了一些编译器错误),得到了如下库C++ 如何指定要链接到哪个版本的boost库?,c++,boost,linker-errors,visual-studio-2013,C++,Boost,Linker Errors,Visual Studio 2013,我正在尝试将一个用VS2012编写的项目迁移到VS2013 我成功地编译了Boost1.53.0(我第一次尝试了1.54.0,但出现了一些编译器错误),得到了如下库 libboost\u filesystem-vc120-mt-1\u 53.lib 但当试图构建我的项目时,链接器抱怨: error LNK1104: cannot open file 'libboost_filesystem-vc110-mt-1_53.lib' 我一直在我的整个解决方案中寻找一些项目设置,以找出为什么它试图加载
libboost\u filesystem-vc120-mt-1\u 53.lib
但当试图构建我的项目时,链接器抱怨:
error LNK1104: cannot open file 'libboost_filesystem-vc110-mt-1_53.lib'
我一直在我的整个解决方案中寻找一些项目设置,以找出为什么它试图加载较旧的库版本,但我没有找到任何东西
链接器如何知道要使用哪个库?
我该如何解决我的问题呢?我在Arttrooper对该线程的回答中找到了问题的答案和问题的解决方案: 链接器确实知道要使用哪个库,因为它是在boost/config/auto_link.hpp中指定的 此文件缺少处理vc120版本的几行代码:
# elif defined(BOOST_MSVC) && (BOOST_MSVC < 1800)
// vc11:
# define BOOST_LIB_TOOLSET "vc110"
# elif defined(BOOST_MSVC)
// vc12:
# define BOOST_LIB_TOOLSET "vc120"
#elif定义(BOOST_MSVC)和&(BOOST_MSVC<1800)
//vc11:
#定义BOOST_LIB_工具集“vc110”
#定义的elif(BOOST_MSVC)
//vc12:
#定义BOOST_LIB_工具集“vc120”
现在它编译和链接很好 “链接器抱怨”--我们可能需要看到一些错误消息。@JohnDibling:我编辑了我的问题这正是我的问题。为什么它在寻找vc110版本而不是vc120?啊哈,我现在明白了。是的,请看@MartinBeckett的答案。@johndilling:不,我已经制作了vc120版本。但是链接器正在寻找一个旧版本,我不知道为什么。我从未指定要使用哪个库。它只是工作到现在,我不知道链接器以前如何知道该使用哪个库。好的地方,报告给boost bug列表