C++ Visual Studio中的fftw?

C++ Visual Studio中的fftw?,c++,visual-studio,linker-errors,fftw,C++,Visual Studio,Linker Errors,Fftw,我正在尝试将我的项目与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 我复制了教程程序,我得到的确切错误是: 1>hw10

我正在尝试将我的项目与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

我复制了教程程序,我得到的确切错误是:

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

那么,我的项目设置有什么问题?谢谢

您是否实际链接了正在构建的项目中的库

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

您需要将库的文件名添加到该字段。

假设您实际已将项目与库链接,但该库不起作用,请使用
/verbose:lib
并粘贴该库的输出和库的输出

dumpbin /exports fftw.lib | findstr fftw_free
我的案子

在VisualStudio2010中使用

在我的Windows XP计算机上使用FFTW-3.2.1-dll.zip安装预编译的FFTW 3.3.1 Windows dll

  • 打开
    cmd
    窗口并转到
    lib.exe
    文件夹
    C:\Program Files\Microsoft Visual Studio 10.0\VC\bin>
  • 键入
    lib/def:libfftw3-3.def
  • 键入
    lib/def:libfftw3f-3.def
  • 键入
    lib/def:libfftw3l-3.def
  • 如果命令出错,请将任何
    mspdb80.dll
    mspdb100.dll
    文件复制到bin目录中
  • 您将获得6个文件

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

    并将其复制到编程目录

  • 从bin目录中删除所有
    mspdb80.dll
    mspdb100.dll
    文件

  • 关闭项目并再次打开,然后再次重建


  • 我也有类似的问题。使用此帮助编译fftw LIB有帮助。事实上,更密切的问题是编译我的应用程序win32并尝试使用x64-libraries。因此,请确保平台相同。

    谢谢!我希望它能像这样简单。我使用了32位的fftw windows二进制文件,而不是自己构建的,它工作正常。有帮助的是你暗示我正在32位模式下构建应用程序,并使用64位fftw。我还要补充一点,我使用的是64位Windows,将fftw DLL复制到
    C:\Windows\System32
    无法工作(即我的应用程序在那里找不到它们)。出于某种原因,我不得不复制它们
    C:\Windows\SysWOW64