【问题标题】:Installing the FFTW3 library on Windows 10 using Code::Blocks (C++)使用 Code::Blocks (C++) 在 Windows 10 上安装 FFTW3 库
【发布时间】:2020-07-08 10:51:43
【问题描述】:

我想在运行 Windows 10 的系统中安装 FFTW3 库。我的编译器是 minGW GCC 10.1,我正在使用 Code::Blocks。

我从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 添加到系统PATH 中,如MinGW dlltool creates empty file 中所述。

然后我以管理员身份打开 cmd 窗口并执行dlltool -v -d nlib32.def -l nlib32.lib。 2KB libfftw3-3.lib 文件是在编译器的 bin 文件夹中创建的。

然后,我再次按照上面提供的链接中描述的步骤进行操作。为方便起见,我直接在下面发布步骤。

每个库一次:

  1. 获取库。从网站或通过包管理器下载。
  2. 安装库。将其解压缩到目录或通过包管理器安装。
  3. 告诉编译器在哪里寻找库的头文件。

这里我设置路径为C:\Program Files (x86)\CodeBlocks\myLibraries\FFTW3

  1. 告诉链接器在哪里寻找库文件。

这里我设置路径为C:\Users\User\Downloads\minGW_GCC_10_1\mingw64\bin

每个项目一次:

  1. 告诉链接器要链接哪些静态或导入库文件。

再次将路径设置为C:\Users\User\Downloads\minGW_GCC_10_1\mingw64\bin

  1. #在程序中包含库的头文件。

  2. 确保程序知道在哪里可以找到正在使用的任何动态库。

当我执行以下代码时

#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 步,即“确保程序知道在哪里找到任何正在使用的动态库。”步。请注意,这是我第一次不得不处理动态链接库等,所以我仍然感到困惑。

【问题讨论】:

    标签: c++ dll codeblocks fftw


    【解决方案1】:

    我设法使您的代码通过三个简单的步骤运行(我想您已经正确下载和提取了 FFTW 并安装了 Code::Blocks):

    1. 指明 FFTW 目录,以便可以读取标题 fftw3.h。构建选项 > 搜索目录 > 编译器并指定头文件的位置。对我来说是C:\Program Files\FFTW

    2. libfftw3-3.dll 文件从FFTW 目录复制到应用程序的.exe 旁边。告诉我这是C:\projets\fftwEx\bin\Debug

    3. 复制原安装目录下的libfftw3-3.dll文件,重命名为libfftw3-3.dll.a。然后在构建选项 > 链接器设置 > 链接库中指明它的路径。对我来说是C:\Program Files\FFTW\libfftw3-3.dll.a

    【讨论】:

      猜你喜欢
      • 2018-09-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-01
      相关资源
      最近更新 更多