我想在Windows-64位上使用FFTW3。我按照FFTW website的說明:下載軟件包,解壓縮,運行lib.exe來創建.lib「導入庫」。fftw3在Windows 64位
這樣做之後,我建我的應用程序(它運行得很好用FFTW3的DLL 32位),我得到了以下錯誤:
1> pyramidTransform.obj:錯誤LNK2019 :解析的外部符號 __imp_fftw_destroy_plan在函數引用爲 「int __cdecl fourier2spatialband1(INT,INT,浮 *,浮,雙()[2],雙()[2],雙()[2])」 (? fourier2spatialband1 @@ YAHHHPEAM0PEAY01N11 @ Z) 1>金字塔Transform.obj:錯誤 LNK2019:解析的外部符號 __imp_fftw_execute在函數引用爲「int __cdecl fourier2spatialband1(INT,INT,浮 *,浮,雙()[2],雙()[2],雙()[2]) 「 (fourier2spatialband1 @@ @ YAHHHPEAM0PEAY01N11 Z) 1> pyramidTransform.obj:錯誤 LNK2019:解析的外部符號 在功能__imp_fftw_plan_dft_2d引用爲」 int __cdecl fourier2spatialband1(INT,INT,浮 * ,浮動,雙倍()[2],雙倍()[2],雙倍()[2]) 「 (fourier2spatialband1 @@ @ YAHHHPEAM0PEAY01N11 Z) 1> pyramidTransform.obj:錯誤 LNK2019:解析的外部符號 __imp_fftw_free在函數引用爲」 int __cdecl分解(INT,INT,浮 *,INT ,整數,浮點* *,浮* *,浮子*,浮* * *,浮* * *,浮子* *,浮動* *)」(分解@@ @ YAHHHPEAMHHPEAPEAM10PEAPEAPEAM211 Z) 1> pyramidTransform.obj:錯誤 LNK2019:無法解析的外部符號 __imp_fftw_malloc在函數中引用int __cdecl decompose int,int,float, float * *,float * *)「(?decompose @@ YAHHHPEAMHHPEAPEAM10PEAPEAPEAM211 @ Z)
其他依賴項的屬性窗格清楚地顯示我鏈接到libfftw3-3.lib(上面創建)。
我該如何判斷Visual Studio試圖鏈接到什麼?有沒有人在Windows 64位中使用FFTW-3有什麼好運氣?
我連接到一個64位版本,它被下載到一個單獨的文件夾中。 我的32位應用程序已鏈接到32位dll。我很確定我正在鏈接到fftw3的64位dll。如果你有一個工具可以驗證這一點,我會很感興趣的學習。 – 2010-07-14 03:14:07
你確定嗎?將鏈接器設置爲詳細模式('Project - > Properties - > Linker - > Command Line - >輸入「/ VERBOSE」到Additional Options框中),並查看鏈接器實際搜索的庫。 – 2010-07-14 04:26:13
我放入了標誌,連接器清楚地搜索了「假設正確」的lib文件。我怎麼知道這個lib文件有什麼好處? (即64位,並使用正確名稱修改定義那些符號?) – 2010-07-14 14:56:07