2010-04-28 66 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