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

时间:2014-10-14 15:34:21

标签: c++ multithreading unit-testing boost

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

#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();
}

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

unknown location(0): fatal error in "boost_thread_test": std::runtime_error: Operation not permitted

根据this post,似乎这应该有效。为什么不呢?

  • 编译:GCC 4.6.3
  • 提升:1.55.0

1 个答案:

答案 0 :(得分:6)

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