私はキャッチ22にあるようです。私のプログラムはスレッドとセマフォを使用していますので、<semaphore.h>
を含めましたが、struct timespec
を使用したいので、<time.h>
を含めました。Linux gcc <time.h>とスレッドを一緒に
セマフォ呼び出しが定義されるようにコンパイルフラグ-C99を追加する必要があるようです(そうでなければ、sem_post()
のようにコンパイル警告を定義しません)。しかし、私がC99を定義するとき、struct timespec
はもはや定義されていません!
何が定義またはコンパイラフラグは、私が一緒にCLOCK_REALTIME
、sem_timedwait()
を定義し、clock_gettime()
などstruct timespec
や機能を使用するように設定する必要がありますsem_post()
、sem_destroy()
、など?
私はリンクステージにまだ参加していません。これはコンパイル時エラーです。
gccの使用4.4.7。
おかげで、 マイク
'sme_post()'を定義するヘッダを見つけることはまずありません。 – EOF
申し訳ありません - 間違った問題を指摘しました。私は-std = c99を持ってはいけませんでしたが、-pthreadと-lpthreadsでリンクしてください。複雑な私はclock_gettime()を呼び出すので、rtとリンクする必要もあります。私の最初の質問と私はそれを流した。マイク – Mike
あなたがいません。質問を編集して改訂することはできますか? – khrm