g ++とcmakeを使用してスレッドライブラリエラーをコンパイルする

プロジェクトのシナリオ:

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

正常にコンパイル

おすすめ

転載: blog.csdn.net/weixin_43367756/article/details/126297331