如何在cygwin中使用boost :: thread编译一个简单的程序?

时间:2010-10-13 17:29:32

标签: c++ multithreading boost cygwin

我从cygwin安装了boost包,并且有一个目录/ usr / include / boost,其中包含一堆* .hpp文件,包括thread.hpp,我需要将其包含在c ++文件中,通过

#include <boost/thread.hpp>

此外,几个* .a文件似乎与boost :: thread相关。

$ ls /usr/lib/libboost_thread* -1
/usr/lib/libboost_thread-gcc-mt-1_33_1.a
/usr/lib/libboost_thread-gcc-mt.a
/usr/lib/libboost_thread-mt.a
/usr/lib/libboost_thread-mt.dll.a

我的g ++编译命令应该是什么样的?我知道我应该使用-L -I和-l的某种组合,但我不确定每个参数应该提供什么,到目前为止我没有任何工作。

我尝试了以下内容:

$ g++ test.cpp -lboost_thread-gcc-mt
/cygdrive/c/Users/jonderry/AppData/Local/Temp/ccaNCMaA.o:test.cpp:(.text$_ZN5boost6detail11thread_dataIPFvvEED
0Ev[boost::detail::thread_data<void (*)()>::~thread_data()]+0x16): undefined reference to `boost::detail::thre
ad_data_base::~thread_data_base()'
...
...

1 个答案:

答案 0 :(得分:2)

编辑(删除-gcc部分):g++ sample.cpp -lboost_thread-mt。您可能还需要添加-lpthread-pthread。如果仍然没有运气,请发布你得到的错误。 HTH