使用Visual Studio 2013链接到boost

alen0pnh  于 2023-01-09  发布在  其他
关注(0)|答案(2)|浏览(148)

我试图链接到visual studio 2013中的几个boost库(需要编译的库),但遇到了麻烦。
我已经通过从命令行运行安装了boost文件

boostrap.bat

以及

b2 --toolset=msvc-12.0 --build-type=complete architecture=x86 address-model=64 stage

以便库位于C:\boost_1_56_0/stage/lib中
在我的项目中,我进入配置属性〉c/c++〉常规〉附加包含目录,并包含C:\boost_1_56_0和包含头文件,例如使用#include<boost/serialization/vector.hpp>
然后转到配置属性〉链接器〉其他库依赖项,包括C:\boost_1_56_0\stage\lib
我现在知道boost使用自动链接,因此我确保没有尝试将链接定向到配置属性〉链接器〉输入〉附加依赖项中的boost库
然而,我仍然收到以下类型的(许多)链接器错误:

error LNK2001: unresolved external symbol "public: void __thiscall boost::archive::detail::basic_oarchive::end_preamble(void)" (?end_preamble@basic_oarchive@detail@archive@boost@@QAEXXZ)

我发现的所有相关问题都是关于boost的自动链接功能的误解,但是我现在明确地做了我应该做的事情(就我所知),那就是找到头文件,库文件在我指导链接器去找的地方。
我可能做错了什么?

yi0zb3m4

yi0zb3m41#

有很多文章都是关于在visual studio的堆栈溢出中链接boost的,其中一篇我觉得很少/很完整的是How to use Boost in Visual Studio 2010

irlmq6kh

irlmq6kh2#

我只是遇到了类似的问题,并与您分享我的想法。您可能正在编译32位和64位的库。因此,我猜您可能有两个目录,其中包含相同名称的库,但构建在不同的平台。比如$(启动154新主页)\lib_x64和$(BOOST154_NEW_HOME)\lib_x86。您应该在配置属性〉链接器〉附加库依赖项中包含这两个路径。链接来查找您要使用的库,但它仍然混淆了需要导入32位或64位以下的库。
我的建议是,您应该在配置属性〉链接器〉附加库依赖项中只包含64位boost libs目录。

相关问题