为什么我不能在Boost.Test测试用例中创建一个线程?

Ste*_*eve 2 c++ multithreading boost unit-testing

我定义了以下非常简单的测试用例:

#define BOOST_TEST_MODULE thread_test_module
#include <boost/test/unit_test.hpp>
#include <thread>

void do_nothing() {}

BOOST_AUTO_TEST_CASE ( boost_thread_test )
{
    std::thread t(do_nothing);
    t.join();
}
Run Code Online (Sandbox Code Playgroud)

运行时,我收到以下错误:

unknown location(0): fatal error in "boost_thread_test": std::runtime_error: Operation not permitted
Run Code Online (Sandbox Code Playgroud)

根据这篇文章,它似乎应该有效.为什么不?

  • 编译:GCC 4.6.3
  • 提升:1.55.0

Ste*_*eve 6

这个问题的解决方案是pthread通过添加-lpthread到我的链接器命令行来链接库.