2014-01-06 91 views
0

我有一个教程的助推线程程序,我可以编译它没有问题或警告,但是当我运行它时,我没有得到任何输出形式的日食。该计划定期一次。我用日食使用MiNGW,这可能是问题吗?Boost线程终止程序?

有没有人有想法?欢迎所有的提示!

下面是我使用的教程代码,它从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; 
} 

更新

我已经下MinGW的接头连接的并行线程,程序编译,但结果是一样的。当我把我breakpoiiny略低于主我得到这个:

目标字节顺序自动设置(目前小端) [新主题4168.0xbf8]

而且程序终止没有任何人有想法?

+0

您是否尝试构建可执行文件并在没有eclipse的情况下运行它? – nikitoz

+0

您是否尝试过调试?不要忘记,在Eclipse中的多个线程中可以有多个断点,因此您可以逐步查看主程序以及工作线程。 – Shaz

+0

在visual studio 2010中运行良好。 – IdeaHat

回答

0

您需要确保链接boost_thread和pthread库。

+0

谢谢大家的意见!有人能告诉我如何链接-pthread与mingw(和eclipse)。明语是否有pthread? – Roy08

+0

右键单击您的项目,选择“属性”。当该窗口打开时,选择“C/C++ Build-> Settings”。在GCC C++链接器下,选择“LIbraries”,然后添加您需要的库。 –

+0

我已将链接器中的ptheds与mingw链接器链接,但结果相同。有人有想法吗? – Roy08