2014-01-06 5 views
0

У меня есть программа повышения потока из учебника, я могу скомпилировать ее без каких-либо проблем или предупреждений, но когда я запустил ее, я не получаю никакой выходной формы eclipse. Программа заканчивается один раз. Я использую MiNGW с моим затмением, может это проблема?Boost threads завершает работу программы?

Есть ли у кого-нибудь идеи? Все предложения приветствуются!

Ниже приведен код учебник, который я использовал, его из this site:

#include <iostream> 
#include <boost/thread.hpp> 
#include <boost/date_time.hpp> 

void workerFunc() 
{ 
    boost::posix_time::seconds workTime(10000); 

    std::cout << "Worker: running" << std::endl; 

    // Pretend to do something useful... 
    boost::this_thread::sleep(workTime); 

    std::cout << "Worker: finished" << std::endl; 
} 

int main(int argc, char* argv[]) 
{ 
    std::cout << "main: startup" << std::endl; 

    boost::thread workerThread(workerFunc); 

    std::cout << "main: waiting for thread" << std::endl; 

    workerThread.join(); 

    std::cout << "main: done" << std::endl; 

    return 0; 
} 

Update

Я связан Pthreads под MinGW линкера и программа компилируется, но результат тот же. Когда я поставил я breakpoiiny чуть ниже основной я получаю это:

Мишень порядок байт устанавливается автоматически (в настоящее время мало порядок байт) [Новая тема 4168.0xbf8]

И заканчивается ли у кого есть идея программы?

+0

Вы пытались создать исполняемый файл и запустить его без затмения? – nikitoz

+0

Вы пробовали отладку? Не забывайте, что вы можете иметь несколько точек останова в нескольких потоках в Eclipse, чтобы вы могли видеть, что ваш основной шаг за шагом, а также ваш рабочий поток. – Shaz

+0

Прекрасно работает на визуальной студии 2010. – IdeaHat

ответ

0

Вам необходимо убедиться, что вы связываетесь в библиотеках boost_thread и pthread.

+0

Спасибо всем за ваши комментарии! Может ли кто-нибудь сказать мне, как связать -pthread с mingw (и eclipse). У mingw есть pthread? – Roy08

+0

щелкните правой кнопкой мыши по вашему проекту, выберите «Свойства». Когда откроется это окно, выберите «C/C++ Build-> Settings». В разделе GCC C++ Linker выберите «LIbraries», а затем добавьте нужные библиотеки. –

+0

Я связал ptheds в eclipse с mingw linker, но результат тот же. У кого-нибудь есть идея? – Roy08

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