Can';使用visualc++;windows 64位上的express 我试图用Visual C++快车链接到FFTW库,但在编译时会收到链接错误。我生成了lib文件作为站点(http://fftw.org/install/windows.html)通过使用lib.exe程序创建.lib“导入库”进行说明

Can';使用visualc++;windows 64位上的express 我试图用Visual C++快车链接到FFTW库,但在编译时会收到链接错误。我生成了lib文件作为站点(http://fftw.org/install/windows.html)通过使用lib.exe程序创建.lib“导入库”进行说明,windows,visual-c++,fftw,Windows,Visual C++,Fftw,我将.lib文件添加到“程序文件(x86)\Microsoft Visual Studio 9.0\VC\lib”,将fftw3.h添加到“程序文件(x86)\Microsoft Visual Studio 9.0\VC\include”。然后我将dll文件放在“Windows/system32”文件夹中。我通过将这些库(libfftw3f-3.lib、libfftw3-3.lib、libfftw3l-3.lib)添加到链接器/输入首选项的其他依赖项来链接它们。当我尝试编译时,会出现以下错误:

我将.lib文件添加到“程序文件(x86)\Microsoft Visual Studio 9.0\VC\lib”,将fftw3.h添加到“程序文件(x86)\Microsoft Visual Studio 9.0\VC\include”。然后我将dll文件放在“Windows/system32”文件夹中。我通过将这些库(libfftw3f-3.lib、libfftw3-3.lib、libfftw3l-3.lib)添加到链接器/输入首选项的其他依赖项来链接它们。当我尝试编译时,会出现以下错误:

    process_wav.obj : error LNK2019: unresolved external symbol __imp__fftwf_destroy_plan referenced in function _main
    process_wav.obj : error LNK2019: unresolved external symbol __imp__fftwf_plan_dft_r2c_1d referenced in function _main
我搜索了stack overflow,但大多数答案都解释了需要将库添加到要查找的其他依赖项中。当我将/verbose:lib放在命令行选项上时,会得到以下结果:

    f
    fdf

1>Linking...
1>Searching libraries
1>    Searching libfftw3f-3.lib:
1>    Searching libfftw3-3.lib:
1>    Searching libfftw3l-3.lib:
1>    Searching F:\Program Files\Mega-Nerd\libsndfile-win32-bin-1.1.7\libsndfile-1.lib:
1>    Searching F:\Program Files\Microsoft SDKs\Windows\v6.0A\\lib\odbc32.lib:
1>    Searching F:\Program Files\Microsoft SDKs\Windows\v6.0A\\lib\odbccp32.lib:
1>    Searching F:\Program Files\Microsoft SDKs\Windows\v6.0A\\lib\kernel32.lib:
1>    Searching F:\Program Files\Microsoft SDKs\Windows\v6.0A\\lib\user32.lib:
1>    Searching F:\Program Files\Microsoft SDKs\Windows\v6.0A\\lib\gdi32.lib:
1>    Searching F:\Program Files\Microsoft SDKs\Windows\v6.0A\\lib\winspool.lib:
1>    Searching F:\Program Files\Microsoft SDKs\Windows\v6.0A\\lib\comdlg32.lib:
1>    Searching F:\Program Files\Microsoft SDKs\Windows\v6.0A\\lib\advapi32.lib:
1>    Searching F:\Program Files\Microsoft SDKs\Windows\v6.0A\\lib\shell32.lib:
1>    Searching F:\Program Files\Microsoft SDKs\Windows\v6.0A\\lib\ole32.lib:
1>    Searching F:\Program Files\Microsoft SDKs\Windows\v6.0A\\lib\oleaut32.lib:
1>    Searching F:\Program Files\Microsoft SDKs\Windows\v6.0A\\lib\uuid.lib:
1>    Searching F:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\lib\MSVCRTD.lib:
1>    Searching F:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\lib\OLDNAMES.lib:
1>    Searching F:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\lib\msvcprtd.lib:
1>    Searching libfftw3f-3.lib:
1>    Searching libfftw3-3.lib:
1>    Searching libfftw3l-3.lib:
1>    Searching F:\Program Files\Mega-Nerd\libsndfile-win32-bin-1.1.7\libsndfile-1.lib:
1>    Searching F:\Program Files\Microsoft SDKs\Windows\v6.0A\\lib\odbc32.lib:
1>    Searching F:\Program Files\Microsoft SDKs\Windows\v6.0A\\lib\odbccp32.lib:
1>    Searching F:\Program Files\Microsoft SDKs\Windows\v6.0A\\lib\kernel32.lib:
1>    Searching F:\Program Files\Microsoft SDKs\Windows\v6.0A\\lib\user32.lib:
1>    Searching F:\Program Files\Microsoft SDKs\Windows\v6.0A\\lib\gdi32.lib:
1>    Searching F:\Program Files\Microsoft SDKs\Windows\v6.0A\\lib\winspool.lib:
1>    Searching F:\Program Files\Microsoft SDKs\Windows\v6.0A\\lib\comdlg32.lib:
1>    Searching F:\Program Files\Microsoft SDKs\Windows\v6.0A\\lib\advapi32.lib:
1>    Searching F:\Program Files\Microsoft SDKs\Windows\v6.0A\\lib\shell32.lib:
1>    Searching F:\Program Files\Microsoft SDKs\Windows\v6.0A\\lib\ole32.lib:
1>    Searching F:\Program Files\Microsoft SDKs\Windows\v6.0A\\lib\oleaut32.lib:
1>    Searching F:\Program Files\Microsoft SDKs\Windows\v6.0A\\lib\uuid.lib:
1>    Searching F:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\lib\MSVCRTD.lib:
1>    Searching F:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\lib\OLDNAMES.lib:
1>    Searching F:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\lib\msvcprtd.lib:
1>    Searching libfftw3f-3.lib:
1>    Searching libfftw3-3.lib:
1>    Searching libfftw3l-3.lib:
1>    Searching F:\Program Files\Mega-Nerd\libsndfile-win32-bin-1.1.7\libsndfile-1.lib:
1>    Searching F:\Program Files\Microsoft SDKs\Windows\v6.0A\\lib\odbc32.lib:
1>    Searching F:\Program Files\Microsoft SDKs\Windows\v6.0A\\lib\odbccp32.lib:
1>Finished searching libraries
它似乎可以找到库,但不知道谁可以在其中找到函数名。我从一个同样使用这个库的网站上获得了代码,有趣的是函数名没有出现在“fftw3.h”中,但我不认为这是问题的原因

任何帮助都将不胜感激,因为我不知道现在该向何处求助


谢谢。

以下步骤适用于我在VisualStudio2008中的工作(从)

  • 从fftw组织网站下载文件“fftw-3.3dll32.zip(http://www.fftw.org/install/windows.html)

  • <> LI>

    为了从VisualC++中链接这些.dll文件,需要为它们创建.LIB“导入库”,并且可以用VC++提供的“LIB”命令来执行,特别是运行: lib/def:libfftw3-3.def

    在“工具>Visual Studio 2008命令提示符”中,不打开任何项目,仅使用Visual。进入控制台后,使用“cd”命令转到文件夹所在的根目录,然后运行上面的三行,然后创建“lib文件”

  • 复制创建lib的文件夹,然后将其复制到我们要使用它的项目文件夹中,并将文件夹重命名为“FFTW_libs”。在该文件夹中,必要的文件是具有“.dll”、“.lib”和“fftw3.h”的文件

  • 在项目中包括LIB:“项目>属性>配置属性>链接器>条目>其他依赖项”,然后我们包括三个新的LIB文件:

  • libfftw3-3.lib

  • 包含LIB所在的路径: a、 “项目>属性>配置属性>链接器>常规>附加libs目录”,我们在那里写“/FFTW_libs”。 b、 “项目>属性>配置属性>净化>环境”,我们在那里写“/FFTW_LIBS”

  • 包含“.dll”文件所在的路径。在“项目>属性>配置属性>净化>环境”中。在变量“环境”中,我们必须指定文件“libfftw3-3.dll”的位置,并写入“path=。\FFTW_LIBS” 完成所有这些步骤后,只需添加“#include fftw3.h”并使用fftw函数


  • 以下步骤适用于我在VisualStudio2008中的工作(从)

  • 从fftw组织网站下载文件“fftw-3.3dll32.zip(http://www.fftw.org/install/windows.html)

  • <> LI>

    为了从VisualC++中链接这些.dll文件,需要为它们创建.LIB“导入库”,并且可以用VC++提供的“LIB”命令来执行,特别是运行: lib/def:libfftw3-3.def

    在“工具>Visual Studio 2008命令提示符”中,不打开任何项目,仅使用Visual。进入控制台后,使用“cd”命令转到文件夹所在的根目录,然后运行上面的三行,然后创建“lib文件”

  • 复制创建lib的文件夹,然后将其复制到我们要使用它的项目文件夹中,并将文件夹重命名为“FFTW_libs”。在该文件夹中,必要的文件是具有“.dll”、“.lib”和“fftw3.h”的文件

  • 在项目中包括LIB:“项目>属性>配置属性>链接器>条目>其他依赖项”,然后我们包括三个新的LIB文件:

  • libfftw3-3.lib

  • 包含LIB所在的路径: a、 “项目>属性>配置属性>链接器>常规>附加libs目录”,我们在那里写“/FFTW_libs”。 b、 “项目>属性>配置属性>净化>环境”,我们在那里写“/FFTW_LIBS”

  • 包含“.dll”文件所在的路径。在“项目>属性>配置属性>净化>环境”中。在变量“环境”中,我们必须指定文件“libfftw3-3.dll”的位置,并写入“path=。\FFTW_LIBS” 完成所有这些步骤后,只需添加“#include fftw3.h”并使用fftw函数


  • 可能在运行时它会要求您提供缺少的fftw DLL。
    我得到了这个案例,并简单地将它们放入system32文件夹。

    可能在运行时它会要求您提供缺少的fftw DLL。
    我得到了这个案例,并简单地将它们放入system32文件夹。

    我在64位Windows 7上使用Visual Studio 2013 Express,遇到了与您相同的问题e尝试为x64生成。问题是我使用“VS2013开发人员命令提示符”shell中的
    lib.exe
    生成了
    .lib
    .exp
    。当我从“VS2013 x64跨工具命令提示符”中重新生成
    .lib
    .exp
    时shell,然后所有引用都已解决。

    我在64位Windows 7上使用Visual Studio 2013 Express,在尝试为x64构建时遇到了与您相同的问题。问题是我
       lib /def:libfftw3-3.def
    
       lib /def:libfftw3f-3.def 
    
       lib /def:libfftw3l-3.def
    
           fftw3.h
           libfftw3-3.lib
           libfftw3f-3.lib
           libfftw3l-3.lib
           libfftw3-3.dll
           libfftw3f-3.dll
           libfftw3l-3.dll
    
           libfftw3-3.lib
           libfftw3f-3.lib
           libfftw3l-3.lib