2017-06-16 86 views
0

我試圖運行一個包含fftw庫的簡單代碼。我知道代碼是正確的,因爲它是作者提供的測試代碼。這是我在編譯過程中鍵入:使用gcc編譯我的文件時鏈接fftw-3.3.6-pl2

gcc my file.c -L/home/ankit/Desktop/fftw-3.3.6-pl2/lib/ 
-I/home/ankit/Desktop/fftw-3.3.6-pl2/include/ -lfftw -lm 

我得到的錯誤:

myfile.c文件:(+。文本0x2c上):.未定義的引用「fftw_plan_dft_2d」 collect2:LD返回1退出狀態

+1

你的代碼在哪裏?代碼是否包含fftw庫所需的頭文件?你仔細看過你的編譯/在線聲明嗎?你注意到文件名中間的空格嗎? – user3629249

+0

在我的計算機上,.../lib中的fftw庫的名稱是'libfftw3.a'。因此,我把它鏈接成'-lfftw3'。你可以測試它嗎?另見http://www.fftw.org/fftw3_doc/Linking-and-Initializing-MPI-FFTW.html和https://stackoverflow.com/questions/25568027/unable-to-link-to-fftw3-library – francis

+0

我的代碼與https://stackoverflow.com/questions/25568027/unable-to-link-to-fftw3-library中使用的代碼完全相同,而且我的問題與他所擁有的完全一樣。我嘗試了這些建議,但他們沒有奏效。我使用的fftw的版本不同,它是fftw-3.3.6-pl2,我將它重命名爲fftw3,因爲我認爲它可能有所幫助。 – PooriR

回答

0

這不是一個鏈接問題,安裝是錯誤的,我不得不用「須藤make install」來獲取安裝是許可成功的。之後我可以將它與'gcc test.c -lfftw3 -lm'鏈接起來。感謝您的建議!