2014-10-14 2 views
1

я определил следующий очень простой тест:Почему я не могу создать поток в тестовом примере Boost.Test?

#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
+0

Создание потоков отлично работает в тестовых примерах блока расширения: [live coliru demo] (http://coliru.stacked-crooked.com/a/d2e5bad368bc7c5b). Какова ваша платформа? –

+1

Интересно, почему это получило понижение голосов. Прямой вопрос, полный пример, сообщение об ошибке есть. Хотелось бы, чтобы люди говорили * почему они голосуют. – Steve

ответ

6

Решение этой проблемы было связать с pthread библиотеки, добавив -lpthread в моей командной строке компоновщика.

Смежные вопросы