2017-10-10 62 views
0

我有一段我負責加速的c代碼。代碼放到RasPi上並編譯。兩年前,代碼被編譯和編譯,並且工作正常。現在,當我嘗試編譯同一個文件時,它說有'clock_gettime'的未定義引用。我查了一下,那個函數是在time.h中定義的。我想這也許沒有安裝或調用代碼中的頭文件。在代碼的開頭,它會說#include,所以這不是問題。我檢查了是否在RasPi上安裝了time.h頭文件,並且它在其他頭文件中。我用nano打開它,clock_gettime函數被定義,所以這不是問題。我該怎麼辦?我該如何解決這個問題?C中頭部存在的問題

+1

你有鏈接'-lrt'嗎? – PSkocik

+1

「未定義的引用」是一個鏈接器問題,而不是編譯問題。我認爲你需要鏈接'-lrt' – yano

+0

我該怎麼做? –

回答

1

clock_gettime(2):

的#include < time.h中>
...
鏈接與-lrt(僅適用於glibc的版本2.17之前)。

+0

你能解釋一下嗎?或者把我鏈接到解釋它的地方? –

+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是編譯的文件。那是對的嗎? –