2010-04-28 69 views
3

我試圖用fftw鏈接我的項目,到目前爲止,我已經得到它來編譯,但沒有鏈接。正如網站所說,我生成了所有.lib文件(儘管我只使用雙精度),並將它們複製到C:\Program Files\Microsoft Visual Studio 9.0\VC\lib,將.h文件複製到C:\Program Files\Microsoft Visual Studio 9.0\VC\include,將.dll複製到C:\windows\system32在Visual Studio中fftw?

我已經複製了教程程序,我得到確切的錯誤是:

1>hw10.obj : error LNK2019: unresolved external symbol __imp__fftw_free referenced in function "bool __cdecl test(void)" ([email protected]@YA_NXZ) 
1>hw10.obj : error LNK2019: unresolved external symbol __imp__fftw_destroy_plan referenced in function "bool __cdecl test(void)" ([email protected]@YA_NXZ) 
1>hw10.obj : error LNK2019: unresolved external symbol __imp__fftw_execute referenced in function "bool __cdecl test(void)" ([email protected]@YA_NXZ) 
1>hw10.obj : error LNK2019: unresolved external symbol __imp__fftw_plan_dft_1d referenced in function "bool __cdecl test(void)" ([email protected]@YA_NXZ) 
1>hw10.obj : error LNK2019: unresolved external symbol __imp__fftw_malloc referenced in function "bool __cdecl test(void)" ([email protected]@YA_NXZ) 

那麼,什麼可能是錯誤的與我的項目設置?謝謝!

回答

2

實際上,您是否與您正在構建的項目中的庫鏈接?

Project -> Properties -> Linker -> Input -> Additional dependencies 

您需要將庫的文件名添加到該字段。

+0

謝謝!我期待它是這樣簡單的事情。 – 2010-04-28 15:53:07

0

假設你實際上已將自己的項目對lib和它不工作,使用/verbose:lib和粘貼,輸出和

dumpbin /exports fftw.lib | findstr fftw_free 
3

我的情況下

輸出使用FFTW Visual Studio 2010

預編譯的FFTW 3.3.1 Windows DLL在我的Windows XP機器上使用fftw-3.2.1-dll.zip進行安裝。

  1. 打開cmd窗口,然後轉到lib.exe文件夾C:\Program Files\Microsoft Visual Studio 10.0\VC\bin>
  2. 類型lib /def:libfftw3-3.def
  3. 類型lib /def:libfftw3f-3.def
  4. 類型lib /def:libfftw3l-3.def
  5. 如果你有命令錯誤,在bin中的任意mspdb80.dllmspdb100.dll文件複製到目錄。
  6. 您將獲得6個文件

    libfftw3-3.exp,libfftw3-3.lib,libfftw3f-3.exp,libfftw3f-3.lib, libfftw3l-3.exp和libfftw3l-3。 lib

    並將其複製到編程目錄。

  7. 從bin目錄中刪除全部mspdb80.dllmspdb100.dll文件。

  8. 已關閉項目並再次打開並重新生成。

0

我有類似的問題。什麼幫助編譯fftw庫有這個幫助Compiling FFTW source in Visual studio。其實更緊密的問題是編譯我的應用程序Win 32並嘗試使用x64庫。所以確保平臺是一樣的。

+0

我使用fftw窗口二進制文件**預編譯爲32位**,而無需自己構建它們,並且工作正常。什麼幫助是你的暗示,我在32位模式下使用64位fftw構建我的應用程序。我還會補充說我使用64位Windows,並且將fftw DLL複製到'C:\ Windows \ System32'不起作用(即我的應用程序在那裏沒有找到它們)。出於某種原因,我不得不復制它們'C:\ Windows \ SysWOW64'。 – 2017-01-16 13:10:25