我想在Windows64位上使用FFTW3 .我遵循FFTW网站上的说明:下载包,解压缩,运行lib.exe来创建.lib“导入库”。
在这样做之后,我构建了我的应用程序(它使用FFTW3 dlls 32位运行得很好),并得到以下错误:
(?fourier2spatialband1@@YAHHHPEAM0PEAY01N11@Z) 1>pyramidTransform.obj : error LNK2019:函数"int __cdecl fourier2spatialband1“中引用的未解析外部符号__imp_fftw_destroy_plan ( int,int,float *,float,double ()2,double ()2,double ()2)”1>pyramidTransform.obj : error LNK2019:未解析的外部符号__imp_fftw_execute在函数中引用"int __cdecl fourier2spatialband1(int,int,float *,float,double ()2,double ()2,double()2,double ()2)“(?fourier2spatialband1@@YAHHHPEAM0PEAY01N11@Z) 1>pyramidTransform.obj : error LNK2019:函数中引用的未解析外部符号__imp_fftw_plan_dft_2d "int __cdecl fourier2spatialband1(int,int,float *,float,double ()2,double ()2,double ()2)”(?fourier2spatialband1@@YAHHHPEAM0PEAY01N11@Z) 1>pyramidTransform.obj : error LNK2019:未解析的外部符号__imp_fftw_free在函数"int __cdecl分解中引用( int,int,float *,int,int),浮点数* *、浮动* *、浮点数* *、(?decompose@@YAHHHPEAMHHPEAPEAM10PEAPEAPEAM211@Z) * *、浮点数* *、(?decompose@@YAHHHPEAMHHPEAPEAM10PEAPEAPEAM211@Z) * * *、浮点数浮动* *)“(?decompose@@YAHHHPEAMHHPEAPEAM10PEAPEAPEAM211@Z)
附加依赖项的属性窗格清楚地显示,我链接到libfftw3-3.lib (上面创建的)。
我如何知道试图链接到什么?有没有人对Windows 64位的FFTW-3有任何进展?
发布于 2010-07-14 15:04:39
我发现了问题。使用FFTW3时,由于作者已经为Windows编译了DLL,因此需要从所提供的.def文件创建导入库(.lib)文件。为此,您可以转到Visual 2008命令提示符:
lib /def:libfftw3-3.def微软(注册商标)图书馆经理版9.00.21022.08版权(C)微软公司。版权所有。 链接:警告LNK4068:未指定/MACHINE;默认为X64 创建库libfftw3f-3.lib和对象libfftw3f-3.exp
问题是,当我第一次创建这些.lib文件时,一定是启动了错误的命令提示符。
更多说明可在FFTW 网站中找到。
同样重要的是,如果您遵循上述网站的步骤,您将需要从一个不需要管理员权限的文件夹中运行这些命令。通过这样做,您将能够获得.lib文件。然后,您只需将它们复制到VS lib文件夹中,就可以开始了。
发布于 2010-07-14 01:07:08
您正在链接到64位版本的库,不是吗?您说它在FFTW3 32位DLL中运行良好,所以听起来您使用的是32位库。64位构建不能链接到32位库(或32位DLL )。
https://stackoverflow.com/questions/3242662
复制相似问题