【问题标题】:C++ Boost: undefined reference to `boost::system::detail::system_category_ncx()`C++ Boost:对`boost::system::detail::system_category_ncx()`的未定义引用
【发布时间】:2019-01-10 06:46:53
【问题描述】:

我正在尝试使用 Microsoft REST SDK 创建一个侦听 HTTP 请求的服务器。我现在的电脑是Ubuntu 18.04,服务器代码很简单。

我已经按照libboost official website 上的说明安装了库,并且我检查了/usr/local/lib/ 中的文件,有libboost_random.so.1.68.0 所以我假设我有libboost 库。

但是,当我尝试使用以下命令编译代码时:

g++ server.cpp -o server -lpthread -lcpprest -lcrypto -lssl -lboost_system

它显示:

/tmp/ccKWADuo.o: In function `boost::system::system_category()':
server.cpp:(.text._ZN5boost6system15system_categoryEv[_ZN5boost6system15system_categoryEv]+0x7): undefined reference to `boost::system::detail::system_category_instance'
/tmp/ccKWADuo.o: In function `boost::system::generic_category()':
server.cpp:(.text._ZN5boost6system16generic_categoryEv[_ZN5boost6system16generic_categoryEv]+0x7): undefined reference to `boost::system::detail::generic_category_instance'
collect2: error: ld returned 1 exit status

感谢您的任何建议。

【问题讨论】:

标签: c++ linux boost


【解决方案1】:

Boost 由几个独立的库组成。您的链接器错误表明您缺少libboost_system.so。您刚刚提到libboost_random.so 在您的/usr/local/lib 中,但是否还有必需的libboost_system.so

【讨论】:

  • 是的,它在/usr/local/lib/,对于令人困惑的声明,我们深表歉意。其实在那个路径下有libboost_system.solibboost_system.so.1.68.o
【解决方案2】:

[问题已解决] 重新安装库 libboost 1.68.0 有帮助。从源代码构建时出现错误,修复这些构建错误将解决问题。

【讨论】:

    猜你喜欢
    • 2012-11-08
    • 2016-05-02
    • 2019-07-05
    • 2018-11-03
    • 2015-04-09
    • 2017-02-25
    • 2021-05-16
    • 2013-08-14
    相关资源
    最近更新 更多