C++ 使用特定名称构建boost库
我正在尝试用MSVC 2013编译我的程序,该程序使用boost库,我得到链接错误: 无法打开输入文件boost_iostreams-vc120-1.57.lib 我已经使用多种选项组合成功构建了boost数次(例如“bjam toolset=msvc--build type=complete”),但我的stage目录中没有boost_iostreams-vc120-1.57.lib。我有一些名为libboost_iostreams.lib、libboost_iostreams-vc-120-mt-1_57.lib等的库。另外,我不想更改MSVC中的任何设置,因为我的项目是由CMake生成的 所以问题是:如何使用Windows构建库boost_iostreams-vc120-1.57.libC++ 使用特定名称构建boost库,c++,boost,build,C++,Boost,Build,我正在尝试用MSVC 2013编译我的程序,该程序使用boost库,我得到链接错误: 无法打开输入文件boost_iostreams-vc120-1.57.lib 我已经使用多种选项组合成功构建了boost数次(例如“bjam toolset=msvc--build type=complete”),但我的stage目录中没有boost_iostreams-vc120-1.57.lib。我有一些名为libboost_iostreams.lib、libboost_iostreams-vc-120-m
感谢您的回答,并为我的英语感到抱歉
-mt
后缀意味着MSVC始终支持多线程构建。单线程CRT在VS2008甚至2005年被删除,因此您的代码和boost都将支持多线程。如果不想更改构建配置,只需从库名称中删除“-mt”后缀即可。但是由于boost支持MSVC自动链接(#pragma comment(lib,“…”
,在头文件中),所以最好为MSVC设置一个例外,不要手动链接到boost库。我知道这不是你的问题,但作为补充说明,在调用find\u package(Boost…
)之前,通过设置set(Boost\u USE\u multi-threaded OFF)
,您应该能够告诉CMake在没有多线程的情况下查找Boost库;这样,它应该查找您现有的库。也没有回答您的问题,但请注意,您可以使用BOOST\u ALL\u NO\u LIB
,只需将您需要的BOOST源文件包含在主项目中进行编译。