Как скомпилировать простую программу, используя boost :: thread в cygwin? - PullRequest
0 голосов
/ 13 октября 2010

Я установил пакет boost от cygwin и у меня есть каталог / 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 Ответ

2 голосов
/ 14 октября 2010

РЕДАКТИРОВАТЬ (удалено -gcc часть): g++ sample.cpp -lboost_thread-mt.Вам также может понадобиться добавить -lpthread или -pthread.Если вам все еще не повезло, пожалуйста, опубликуйте полученные ошибки.НТН

...