私のシステムにはubuntu 11がインストールされています。私はpthreadライブラリを使用するcプログラムを持っています。 フラグ-lpthread
でコンパイルしてもエラーUndefined reference to sem_wait()
が表示されます。例えばgcc -lpthread not working
:
gcc -lpthread prog.c
プログラムは、他のUbuntuのインストールで正常に動作します。
私のシステムにはubuntu 11がインストールされています。私はpthreadライブラリを使用するcプログラムを持っています。 フラグ-lpthread
でコンパイルしてもエラーUndefined reference to sem_wait()
が表示されます。例えばgcc -lpthread not working
:
gcc -lpthread prog.c
プログラムは、他のUbuntuのインストールで正常に動作します。
試してみてください。
gcc -pthread
の代わり-lpthread
。違いは重要だと私は信じている。後者はlibpthread
とリンクしています。前者はlibpthreadと他の多くのものとリンクしています。
sem_wait
はlibrtの一部ですので、gcc -lrt
を使用することもできますが、-pthread
を使用してください(その他はすべて同様です)。
ありがとう!これはうまく動作します。 –
pthread呼び出しで別のものをコンパイルできますか? – DanZimm
リンクの順序は重要です。図書館は最後に来なければなりません。 –