当前位置: 首页 > news >正文

windows下Qt调用fftw库

 

环境:Windows 11 

Qt:6.8.3

程序中需要用到fftw库来进行傅里叶变换,通过网上的资料,配置了很久一直没成功,后来发下还是没有配置正确,最后终于成功,顺便记录一下

1.下载fftw3.3.5

http://www.fftw.org/install/windows.html,根据自已编译器版本下载32位或64位,我的Qt MinGW是64位的,所以选择64位下载

下载后解压如下:

其中fftw3.h需要跟编译后的lib文件一块拷到项目工程目录

二、.lib文件生成

我电脑上已经安装VS2022,就不写教程了,需要的自己去搜教程

①首先在VS的IDE安装路径中搜索lib.exe,其中有一个是X64,有一个是X86的,右键打开X64相应的文件所在位置,并复制其路径。

②按WIN按键后搜索cmd以管理员模式进入命令窗口,输入cd /d lib.exe的路径,再输入lib.exe观察是否可运行,若可以,则说明.lib的生成环境是可以的。

③由于要载入.lib文件,需要将lib.exe文件所在的文件夹的只读属性去掉,将上面下载的三个.def文件复制到lib.exe所在目录中。

④重新进入命令窗口(这时必须以管理员身份进入cmd窗口,每个系统操作不同,请自行搜索)。一定要注意只读+管理员,否则可能出现LINK : fatal error LNK1104的错误。然后再分别输入:

lib /machine:X64 /def:libfftw3-3.def

lib /machine:X64 /def:libfftw3f-3.def

lib /machine:X64 /def:libfftw3l-3.def

这样便生成了相应的.lib文件和.exp文件

注: 如果失败,可能是缺少以下文件,请尝试将VS安装目录下common7/IDE路径下的以下四个文件复制到lib.exe所在路径后,再重新生成.lib文件。

三、Qt中库的载入

1.将图A中fftw3.h文件和图B中的3个.lib文件复制到Qt工程目录中,即main.cpp中

2.在Qt工程中添加头文件,把fftw3.h添加进来

3.在Qt工程的.pro程序中的最后对.lib文件路径进行申明

命令LIBS += $$PWD\libfftw3-3.lib 根据自己的路径改。

4. 点击项目,确认构建目录的位置,一会儿要把.dll文件放进来,这个很重要,有时候dll方的不是这个目录,就会提示找不到dll

5.然后构建所有项目

此时在构建目录中会出现debug文件夹和release文件夹这些构建好的项目。接着把图A中的三个.dll文件复制到构建目录中

ok,构建成功

http://www.rkmt.cn/news/7855.html

相关文章:

  • jenkins的安装和配置
  • 深入解析:【Day 52 】Linux-Jenkins
  • 本土开发者如何选择代码管理工具?Gitee与GitHub深度对比解析
  • C++ std::string
  • MathType数学公式编辑器v7.9.1
  • 2025 ICPC网络赛第一场 L cover
  • 实用指南:22 C++11 初始化新姿势:{} 统一初始化(省等号)+initializer_list 底层解析
  • 第九届电气、机械与计算机工程国际学术会议(ICEMCE 2025)
  • 第六届大数据、人工智能与物联网工程国际会议(ICBAIE 2025)
  • 文件自动同步软件用哪个好,高效选择指南
  • 【初赛】指针 - Slayer
  • 国产化FPGA-2050-基于JFMK50T4(XC7A50T)的核心板
  • hbase学习2
  • MySQL迁移至GreatSQL后,timestamp字段插入报错解析
  • 大模型decoder中权重矩阵的理解 - 实践
  • 【初赛】数 - Slayer
  • 【初赛】链表 - Slayer
  • 第2章 zynq开发板FSBL的生成和NAND烧录
  • 工具大全
  • RocketMQ vs kafka
  • LobeChat搭建
  • url测试脚本2
  • C# 2025年6-9月TIOBE排名增长及未来展望
  • 飞算 JavaAI 启用体验全解析
  • 采用tree命令导出文件夹/文件的目录树(linux)
  • 深入解析 JVM 类加载机制:从字节码到运行时对象
  • 博弈论学习(第二天)
  • PHP 和 Elasticsearch:给你的应用加个强力搜索引擎
  • 一款多功能Linux服务器Web管理面板
  • 完整教程:C/C++:看简介吧= ̄ω ̄=(2)