プロジェクトのシナリオ:
g++ を使用してスレッド ライブラリで C++ コードをコンパイルする
g++ listing_1.1.cpp -o list_1.1
問題の説明
エラー:
/usr/bin/ld: /tmp/ccYH9VAd.o: in function `std::thread::thread<void (&)(), , void>(void (&)())':
listing_1.1.cpp:(.text._ZNSt6threadC2IRFvvEJEvEEOT_DpOT0_[_ZNSt6threadC5IRFvvEJEvEEOT_DpOT0_]+0x33): undefined reference to `pthread_create'
原因分析:
C++11 は追加されません。lpthread は Linux のデフォルトのマルチスレッド ライブラリではありません。
解決:
g++ コマンドはパラメーターを追加します。
g++ listing_1.1.cpp -std=c++11 -o list_1.1 -lpthread
正常にコンパイル