#include <semaphore.h>
sem_t mutex;
int main (int argc, char * argv[])
{
sem_init (&mutex,0,1);
}
私が取得しています:sem_init()のマニュアルページ毎のこのセマフォーコードが失敗するのはなぜですか?
/tmp/ccAMFxDX.o: In function `main':
programaservidor.c:(.text+0x86): undefined reference to `sem_init'
collect2: ld returned 1 exit status
私はこれでかなり新しいです。 -lrtや-pthreadを使ってリンクすることで何を意味するかを少し詳しく説明できますか? – Unome
@確かに[リンク](http://en.wikipedia.org/wiki/Linker_%28computing%29)を参照してリンクの内容を理解してください。 gccコマンドに渡された '-l'オプションが表示されたときはいつでも、実行可能ファイルを作成するのに必要なオブジェクトコードを見つけるためにというライブラリを見る必要があることをリンカに伝える指示です。 OPの場合、 'sem_init'という関数のオブジェクトコードは' pthread'ライブラリにあります。 –
SiegeX
驚くべきことに、私が与えられたコードはmakeファイルで囲まれていたので、それを実行するためには-pthreadを追加しなければなりませんでした。ありがとう! – Unome