我从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()'
...
...
答案 0 :(得分:2)
编辑(删除-gcc部分):g++ sample.cpp -lboost_thread-mt
。您可能还需要添加-lpthread
或-pthread
。如果仍然没有运气,请发布你得到的错误。 HTH