6

私はposixスレッドライブラリが初めてで、チュートリアルからサンプルコードをコンパイルしようとしました:

g++ -lpthread agreement.cpp -o agreement

ただし、コードをコンパイルできず、次のエラー メッセージが表示されました。

a3q2.cpp:(.text+0x7e): undefined reference to `sem_open'
a3q2.cpp:(.text+0xab): undefined reference to `sem_wait'
a3q2.cpp:(.text+0x290): undefined reference to `sem_post'
a3q2.cpp:(.text+0x2af): undefined reference to `sem_close'
a3q2.cpp:(.text+0x2bb): undefined reference to `sem_unlink'
collect2: ld returned 1 exit status
make: *** [a3q2_exe] Error 1

コンパイルが機能するには -lpthread が必要であることは承知していますが、問題を解決するために必要なオプションは他にありますか? そうでない場合、「適切な」pthreadライブラリをインストールするにはどうすればよいですか?

ご協力いただきありがとうございます!

4

1 に答える 1

13

コンパイル オプションが必要-pthreadです (実際に pthread を使用している場合)。これらの機能が必要な場合は、それらがlibrt非常に使用されています-lrt

于 2012-06-20T00:28:24.947 に答える