19

Linux で POSIX タイマー関数 (例: timer_create、timer_settime) を呼び出すプログラムをコンパイルすると、次のようなエラーが返されます。

関数「foo」では:
timer.c:(.text+0xbb): `timer_create' への未定義の参照
timer.c:(.text+0x187): 「timer_settime」への未定義の参照
collect2: ld が 1 つの終了ステータスを返しました

どのライブラリをリンクする必要がありますか?

4

5 に答える 5

29

オプションでコンパイルし-lrtます。コンパイルされます。

于 2009-02-16T08:49:53.263 に答える
7

あなたはそれが私のためにそのように機能することを試すgcc -o mytemer mytimer.c -lrt ことができますが、この順序ではありません gcc -lrt mytimer.c -o mytimer

于 2016-05-20T14:27:31.083 に答える
4

-lrt はリンクを強制しますが、リンクする前にリアルタイム ライブラリを配置する必要があります。ほとんどの場合、自動的に含まれますが、そうでない場合は、apt-get を使用してリアルタイム ライブラリをインストールする必要があります。次に、次の (または同様の) 場所にリンクできます。

/lib/i386-linux-gnu/librt.so.1

コードブロックを使用していて、何らかの理由で -lrt に含まれていない場合は、次のメニュー シーケンスを使用して上記のライブラリ パスとファイル名を追加できます。

Project->Build Options->Linker Settings->Link Libraries->Add

于 2012-11-24T14:17:14.997 に答える
3

これはマニュアルページに記載されているはずです。add ではないことを考えると-lrt

于 2008-11-03T20:15:25.107 に答える
2

以下を試してください:

gcc -lrt
于 2009-03-23T11:31:39.323 に答える