1. ホーム
  2. コンパイラ言語
  3. c++

Linux g++ コンパイル: `pthread_create' への未定義の参照

2022-01-21 09:51:27

linuxがc++のプログラムをコンパイルしたところ、以下のエラーが報告されました。

  1. lmh@master:~/Documents/HW$ g++ -std=c++11 condi_test1.cpp -o 1-demo
  2. /tmp/ccBCiMQ5.o: In function `std::thread::thread<void (&)()>(void (&)())':
  3. condi_test1.cpp:(.text._ZNSt6threadC2IRFvvEJEEEOT_DpOT0_[_ZNSt6threadC5IRFvEJEEEOT_DpOT0_]+0x7d): undefined reference to `pthread_ create'
  4. collect2: error: ld returned 1 exit status

原因:linuxではpthreadはデフォルトのライブラリではないため、リンク時にphreadライブラリのbrother関数のエントリアドレスが見つからず、リンクに失敗してしまうため。

解決方法 コマンドをコンパイルした後 アペンド  -lpthread  パラメータです。

g++ -std=c++11 condi_test1.cpp -o 1-demo -lpthread