0

pthread_cond_wait私はこのように見える使用したコードを少し持っています:

struct timespec ts;
clock_getttime(CLOCK_REALTIME, &timS);
ts.tv_sec += delay;

pthread_mutex_lock(&a_mutex);
     pthread_cond_timedwait(&thread_cond, &a_mutex,&timS);
pthread_mutex_unlock(&a_mutex);

しかし、コンパイル時にリンカーエラーが発生します。

未定義のシンボルclock_gettime...(そのコードを含むファイル)で最初に参照されます

これは私が得る唯一のリンカーエラーです。このコードブロックをコメントアウトすると、コンパイルされるので、pthreadライブラリがロードされます。どこかで-lcフラグを設定する必要があることを読みましたが、これは別の設定も必要なようです。

誰か知っていますか?

これはSolaris10で、Sunの5.8コンパイラを使用しています。

4

2 に答える 2

3

-lcの答えは間違っています。-lrtを追加する必要があります(おそらくリアルタイム..?)

于 2009-07-08T11:12:52.680 に答える
1

コマンドラインで「manclock_getttime」または「man-kclock_getttime」を試してください。これにより、リンクするライブラリが提供されます。次に、この行をg ++ -L / path / to / lib -lNameOfLib(またはリンクフラグとしてmakefileに)に含めます。

Solaris Unix APIは、標準のUnix関数とは異なる場合があります。

于 2009-07-08T11:14:28.950 に答える