我想在我的系统中安装FFTW3库,它运行在Windows10上。我的编译器是minGW GCC 10.1,我使用的是代码::块。
我从http://www.fftw.org/install/windows.html下载了64位版本,并在C:\Program Files (x86)\CodeBlocks\myLibraries\FFTW3
中解压缩。
然后,我遵循这里描述的步骤,https://www.learncpp.com/cpp-tutorial/a3-using-libraries-with-codeblocks/。在步骤4中,它说“告诉链接器在哪里查找库的库文件。”
因为没有.lib文件,所以必须创建它。我复制了libfftw3-3.def
文件并将其粘贴到mingw64编译器的bin
文件夹中,以便可以使用dlltool
。注意,在同一个bin
文件夹中存在as.exe可执行文件。我添加了这个目录,即C:\Users\User\Downloads\minGW_GCC_10_1\mingw64\bin
到MinGW dlltool creates empty file中描述的系统路径。
然后,我以admin的身份打开cmd窗口并执行dlltool -v -d nlib32.def -l nlib32.lib
。2KB的libfftw3-3.lib
文件是在编译器的bin文件夹中创建的。
然后,再次遵循我在上面提供的链接中描述的步骤。为了方便起见,我在下面直接张贴步骤。
每个图书馆一次:
在这里,我将路径设置为C:\Program Files (x86)\CodeBlocks\myLibraries\FFTW3
在这里,我将路径设置为C:\Users\User\Downloads\minGW_GCC_10_1\mingw64\bin
每个项目一次:
同样,路径被设置为C:\Users\User\Downloads\minGW_GCC_10_1\mingw64\bin
当我执行以下代码时
#include <iostream>
#include <fftw3.h>
int main(){
int N = 100;
fftw_complex *in;
in = (fftw_complex*) fftw_malloc(sizeof(fftw_complex) * N);
}
我得到了以下错误:“未定义的对'__imp_fftw_malloc‘的引用”。
我不知道我做错了什么,所以编译器找不到我正在调用的函数,但我猜问题在第7步,即“确保程序知道在哪里找到使用的任何动态库”。走一步。请注意,这是我第一次必须处理动态链接库等,所以我仍然感到困惑。
发布于 2020-07-18 09:32:33
我设法使您的代码以三个简单的步骤运行(我想您已经正确地加载和提取了FFTW,并安装了code::块):
fftw3.h
。构建选项>搜索目录>编译器,并指定头文件的位置。对我来说是C:\Program Files\FFTW
.libfftw3-3.dll
文件从FFTW目录复制到应用程序的.exe
旁边。告诉我这是C:\projets\fftwEx\bin\Debug
.libfftw3-3.dll
文件复制并重命名为libfftw3-3.dll.a
。然后在构建选项>链接设置>链接库中指明它的路径。对我来说是C:\Program Files\FFTW\libfftw3-3.dll.a
.https://stackoverflow.com/questions/62793144
复制相似问题