【问题标题】:FFTW linking in Visual Studio 2012Visual Studio 2012 中的 FFTW 链接
【发布时间】:2013-02-08 15:51:02
【问题描述】:

我在 64 位操作系统上使用 Visual Studio 2012。我正在尝试在程序中使用 FFTW,但在链接库时遇到问题。

我从 FFTW Windows 页面下载了 64 位软件包。我按照以下步骤操作:

  • lib /machine:x64 /def:libfftw3-3.def
  • lib /machine:x64 /def:libfftw3f-3.def
  • lib /machine:x64 /def:libfftw3l-3.def

这创建了 .exp 和 .lib 文件。

我添加了所有文件的路径:

属性 -> 调试 -> 环境 属性 -> VC++ 目录 -> 包含目录 属性 -> C/C++ -> 常规 -> 附加包含目录 属性 -> 链接器 -> 常规 -> 附加库目录

我将 .lib 文件添加到属性 -> 链接器 -> 输入 -> 附加依赖项

我在代码顶部添加了以下几行:

#define FFTW_DLL
#include <fftw3.h>

然后我将 FFTW 教程中的示例代码放入我的代码中,如下所示:

fftw_complex *in; 
fftw_complex *out;

fftw_plan p;

in = (fftw_complex*) fftw_malloc(sizeof(fftw_complex)*L);
out = (fftw_complex*) fftw_malloc(sizeof(fftw_complex)*L);
p = fftw_plan_dft_1d(L, in, out,FFTW_FORWARD,FFTW_MEASURE); 

fftw_execute(p);
fftw_destroy_plan(p);
fftw_free(in);
fftw_free(out);

当我尝试构建我的应用程序时,我收到以下错误:

Error   1   error LNK2019: unresolved external symbol __imp__fftw_execute referenced in function _wmain C:\EEG_Hardware\source\dspApp\ConsoleApplication1\ConsoleApplication1\ConsoleApplication1.obj   1   1   ConsoleApplication1
Error   2   error LNK2019: unresolved external symbol __imp__fftw_plan_dft_1d referenced in function _wmain C:\EEG_Hardware\source\dspApp\ConsoleApplication1\ConsoleApplication1\ConsoleApplication1.obj   1   1   ConsoleApplication1
Error   3   error LNK2019: unresolved external symbol __imp__fftw_destroy_plan referenced in function _wmain    C:\EEG_Hardware\source\dspApp\ConsoleApplication1\ConsoleApplication1\ConsoleApplication1.obj   1   1   ConsoleApplication1
Error   4   error LNK2019: unresolved external symbol __imp__fftw_malloc referenced in function _wmain  C:\EEG_Hardware\source\dspApp\ConsoleApplication1\ConsoleApplication1\ConsoleApplication1.obj   1   1   ConsoleApplication1
Error   5   error LNK2019: unresolved external symbol __imp__fftw_free referenced in function _wmain    C:\EEG_Hardware\source\dspApp\ConsoleApplication1\ConsoleApplication1\ConsoleApplication1.obj   1   1   ConsoleApplication1
Error   6   error LNK1120: 5 unresolved externals   C:\EEG_Hardware\source\dspApp\ConsoleApplication1\Debug\ConsoleApplication1.exe ConsoleApplication1

我一直在搜索这个网站,尝试任何我能找到的解决方案,但到目前为止还没有运气。任何帮助将不胜感激!

【问题讨论】:

    标签: visual-c++ visual-studio-2012 fftw


    【解决方案1】:

    我也使用了你的程序,但它对我也没有完全起作用。

    我通过在生成 .exp 和 .lib 文件之前复制文件来修改程序

    msobj100.dll
    mspdb100.dll
    mspdbcore.dll
    mspdbsrv.exe
    

    您可以在 C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE 目录中找到。

    另外,我最后把这三个.dll文件复制到了你项目的.vcxproj和.vcxproj.filters所在的文件夹中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-27
      • 1970-01-01
      • 2013-06-17
      • 1970-01-01
      • 1970-01-01
      • 2023-03-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多