2017-10-10 5 views
0

私はスピードアップを担当しているこのCコードを持っています。コードはRasPiに置かれ、コンパイルされます。 2年前にコードを入れてコンパイルして動作させました。今、同じファイルをコンパイルしようとすると、 'clock_gettime'への未定義の参照があります。私はそれを調べ、その関数はtime.hで定義されています。私はおそらくそのヘッダがインストールされておらず、コード内で呼び出されていないと考えました。コードの冒頭に#includeと書かれているので、それは問題ではありません。私は、time.hヘッダーがRasPiにインストールされているかどうかを確認しました。それは他のヘッダーと共にそこにありました。私はナノでそれを開き、clock_gettime関数が定義されていたので、それは問題ではありません。私は何をすべきか?この問題をどうやって解決するのですか? -lrtCのヘッダーに関する問題

+1

'-lrt'とリンクしましたか? – PSkocik

+1

"undefined reference"はリンカの問題であり、コンパイルの問題ではありません。私は '-lrt'とリンクする必要があると思います – yano

+0

どうすればいいですか? –

答えて

1

clock_gettime(2):

の#include <TIME.H>
...
リンク(のみglibcのバージョンの2.17の前に)。

+0

-lrtを説明することができますか、それを説明するどこかに私をリンクできますか? –

+0

@GordonJohnnyElder 'cc -o your_output_executable your_sources_or_object_files ... -lrt'ここで' cc'は 'gcc'や' clang'や同様のコンパイラです。 – PSkocik

+0

私はあなたが言っていることをよく理解していません。私があなたが言っていると思うのは、gccを使用している場合です。コマンドラインで "gcc filename.c -o outfile -lrt time.h"と言うべきです。ファイル名はコンパイルするファイルで、outfileはコンパイル済みファイルです。あれは正しいですか? –

関連する問題