【问题标题】:Unresolved external symbol at boost::system::error_categoryboost::system::error_category 处未解析的外部符号
【发布时间】:2015-04-29 17:58:07
【问题描述】:

我想在 x86 Windows 7 上构建我的程序,它使用了 boost 库。在阅读了以下post 之后,我尝试构建 boost 并在调试模式下编译我的程序。 Visual Studio 2010 中的输出对话框抛出以下错误:

error LNK2001: unresolved external symbol "class boost::system::error_category const & __cdecl boost::system::system_category(void)" (?system_category@system@boost@@YAABVerror_category@12@XZ) ...

我使用以下构建命令来构建 boost: bjam --build-dir=c:\boost --build-type=complete --toolset=msvc-10.0 address-model=64 architecture=x86 -j 4 注意:命令 --with-system 对我不起作用。

我的项目设置是:Project->Properties->C/C++->General->Additional Include Directories: D:\boost\boost_1_57_0;%(AdditionalIncludeDirectories)Project->Properties->Linker->General->Additional Library Directories: D:\boost\boost_1_57_0\stage\lib

如何解决未解决的外部符号错误?

【问题讨论】:

  • 你检查过D:\boost\boost_1_57_0\stage\lib目录下库文件是否存在吗?您应该会看到类似于 libboost_system-vc100-mt-gd-1_57.lib/dll 的内容
  • 是的,这个文件是可用的...你有其他想法吗?
  • 自动链接可能有问题。尝试将链接器设置为详细模式(显示进度选项)并查看它试图链接到哪些库。
  • @Praetorian 我已经清理了我的项目并包含了每个单独的库。主要问题是 asio 库。我将尝试将链接器设置为详细模式并给您回复。

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


【解决方案1】:

我已经解决了这个问题。我使用以下命令重新编译了 boost 库 1.57:b2 toolset=msvc-10.0 --build-type=complete --libdir=C:\boost\lib\x64 architecture=x86 address-model=64 install。也许,您应该添加参数j%NUMBER_OF_PROCESSORS% 以加快编译过程。

注意: 与我的问题中的命令的主要不同之处在于,在这种情况下我使用 b2 而不是 bjam

【讨论】:

    猜你喜欢
    • 2010-11-07
    • 2014-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-09
    相关资源
    最近更新 更多