使用Boost线程时编译失败

时间:2018-08-18 12:28:48

标签: c++ boost

这是我的代码:

#include <boost/thread.hpp>
#include <iostream>
using namespace boost; 
void task1()
{std::cout << "This is task1!" << std::endl;}
void task2()
{std::cout << "This is task2!" << std::endl;}
int main () 
{
    thread thread_1 = thread(task1);
    thread thread_2 = thread(task2);
    thread_2.join();
    thread_1.join();
    return 0;
}

我编译为:

 g++ test.cc -o test -lboost_thread -lpthread -lboost_system

编译失败:

/tmp/ccN9cPiI.o: In function `boost::system::generic_category()':test.cc(.text._ZN5boost6system16generic_categoryEv[_ZN5boost6system16generic_categoryEv]+0x7):
undefined reference to `boost::system::detail::generic_category_instance'
collect2: error: ld returned 1 exit status

这是怎么了? 我的系统是Ubuntu 18.04,提升速度是1_68.0。

1 个答案:

答案 0 :(得分:0)

我刚刚尝试了您的示例,它可以工作。我在Ubuntu上尝试使用boost_1_66_0和boost_1_65_1。

实际的问题是增强本身,而不是您的安装。您可以在此处检查打开的错误:

https://github.com/boostorg/system/issues/24