C ++ Boost:对`boost :: system :: detail :: system_category_ncx()的未定义引用

时间:2019-01-10 06:46:53

标签: c++ linux boost

我正在尝试使用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

谢谢您的建议。

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

[已解决问题]重新安装库licence.seats.includes(:customers).flat_map(&:customers)很有帮助。从源代码构建时发生错误,修复这些构建错误将解决问题。