fftw在mac下参照官网很容易配置,但是windows下出现了问题。
首先,从fftw官网下载相应的fftw版本(我的是64位),解压。
接下来打开vs(我的是vs2015)的开发者CMD,官网是执行以下命令
lib /def:libfftw3-3.def
lib /def:libfftw3f-3.def
lib /def:libfftw3l-3.def
但是出现了以下错误
C:\fftw-3.3.5-dll64>lib /def:libfftw3-3.def
Microsoft (R) Library Manager Version 14.00.23506.0
Copyright (C) Microsoft Corporation. All rights reserved.
LINK : warning LNK4068: /MACHINE not specified; defaulting to X
Creating library libfftw3-3.lib and object libfftw3-3.exp
C:\fftw-3.3.5-dll64>lib /def:libfftw3f-3.def
Microsoft (R) Library Manager Version 14.00.23506.0
Copyright (C) Microsoft Corporation. All rights reserved.
LINK : warning LNK4068: /MACHINE not specified; defaulting to X
Creating library libfftw3f-3.lib and object libfftw3f-3.exp
C:\fftw-3.3.5-dll64>lib /def:libfftw3l-3.def
Microsoft (R) Library Manager Version 14.00.23506.0
Copyright (C) Microsoft Corporation. All rights reserved.
LINK : warning LNK4068: /MACHINE not specified; defaulting to X
Creating library libfftw3l-3.lib and object libfftw3l-3.exp
网上查了一大圈,发现了需要specify /MACHINE 这个选项(没好好看警告消息),执行以下命令正确的生成了lib文件:
lib /def:libfftw3-3.def /MACHINE:X64
lib /def:libfftw3f-3.def /MACHINE:X64
lib /def:libfftw3l-3.def /MACHINE:X64
成功执行后出现以下信息:
Creating library libfftw3-3.lib and object libfftw3-3.exp
然后将生成好的lib文件和fftw3.h文件添加到代码所在的文件夹下(一些人说dll要拷贝到执行文件夹下,但是貌似不需要)
接下来,在项目属性→链接器→输入→附加依赖项把三个lib文件的文件名加进去。
最后编译,成功!