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

windows下GCC编译器使用FFTW预编译版共享库使用

  1. 下载共享库,64-bit version: fftw-3.3.5-dll64.zip (3.1MB),然后解压到D:\program\fftw-3.3.5-dll64。目录中没有现成的静态库用于链接。
  2. 这一步是要生成静态库文件,用于提供连接时的符号说明,对于使用MSVC路线需要用到lib.exe,对于使用windows的gcc需要使用dlltool.exe,执行相关命令后会生成.a文件。

链接阶段需要 .lib 文件

  • .dll 文件是运行时加载的,链接器需要对应的导入库(.lib 文件) 才能解析符号。例如,libfftw3-3.dll 对应的导入库通常是 libfftw3-3.lib
  • 确保 FFTW 安装目录中包含 .lib 文件,并修改 CMake 链接这些文件。
D:/program/Qt/Qt5.12.9/Tools/mingw730_64/bin/dlltool.exe -d D:/program/fftw-3.3.5-dll64/libfftw3-3.def -l D:/program/fftw-3.3.5-dll64/libfftw3-3.a
D:/program/Qt/Qt5.12.9/Tools/mingw730_64/bin/dlltool.exe -d D:/program/fftw-3.3.5-dll64/libfftw3f-3.def -l D:/program/fftw-3.3.5-dll64/libfftw3f-3.a
D:/program/Qt/Qt5.12.9/Tools/mingw730_64/bin/dlltool.exe -d D:/program/fftw-3.3.5-dll64/libfftw3l-3.def -l D:/program/fftw-3.3.5-dll64/libfftw3l-3.a
  1. 使用
cmake_minimum_required(VERSION 3.10)
project(MyFFTWProject)

# 设置C和C++编译器
set(CMAKE_C_COMPILER "D:/program/Qt/Qt5.12.9/Tools/mingw730_64/bin/gcc.exe")
set(CMAKE_CXX_COMPILER "D:/program/Qt/Qt5.12.9/Tools/mingw730_64/bin/g++.exe")

# 设置FFTW的路径
set(FFTW_DIR "D:/program/fftw-3.3.5-dll64")

# 包含FFTW头文件路径
include_directories(${FFTW_DIR})

# 添加可执行文件
add_executable(MyExecutable main.cpp)

# 链接FFTW库
target_link_libraries(MyExecutable
    ${FFTW_DIR}/libfftw3-3.a
    ${FFTW_DIR}/libfftw3f-3.a
    ${FFTW_DIR}/libfftw3l-3.a
)

# 添加DLL文件到可执行文件目录
add_custom_command(TARGET MyExecutable POST_BUILD
    COMMAND ${CMAKE_COMMAND} -E copy_if_different
    ${FFTW_DIR}/libfftw3-3.dll
    ${FFTW_DIR}/libfftw3f-3.dll
    ${FFTW_DIR}/libfftw3l-3.dll
    $<TARGET_FILE_DIR:MyExecutable>
)
  • libfftw3-3.dll:这是双精度(double precision)版本的FFTW库,适用于大多数需要高精度计算的场景。
  • libfftw3f-3.dll:这是单精度(single precision)版本的FFTW库,适用于对精度要求不高但需要更快计算速度的场景。
  • libfftw3l-3.dll:这是长双精度(long double precision)版本的FFTW库,适用于需要更高精度的计算。

相关文章:

  • 优秀的python可视化案例
  • Unity ViewportConstraint
  • 蓝桥杯 web 新鲜的蔬菜(css3)
  • javaweb自用笔记:Maven分模块设计与开发、Maven继承与聚合、Maven私服
  • 什么是数据
  • LogicFlow-前端流程图开发
  • 使用成员函数指针数组简化C++类中的操作
  • WebGL数学手记:矩阵基础
  • 安防监控/视频集中存储平台EasyCVR赋能养老院:构建多维度智能安防新生态
  • flink 增量快照同步文件引用关系和恢复分析
  • 中国金属通报杂志社中国金属通报编辑部2024年第12期目录
  • 一个开源的 VS Code 大模型聊天插件:Light-at
  • 搭建docker registry私服,并且支持https推送
  • 使用人工智能大模型腾讯元宝,如何快速编写活动记录?
  • ZKmall开源商城服务端验证:Jakarta Validation 详解
  • C++学习day7
  • Linux学习笔记(2) 命令基础:从概念到实践(期末,期中复习笔记全)
  • 从零开始学Python游戏编程13-整数3
  • 【LangChain Agent 】详解,构建自主决策的 LLM 应用
  • Django信号使用完全指南示例
  • 武汉做商城网站建设/网站优化包括对什么优化
  • 电商网站建设思维导图/seo网站优化方法
  • 做网站开发需要考什么证书/企业网络宣传推广方案
  • 域名网站排名/seo研究协会
  • 在线营销型网站建设/网推怎么做
  • 如何找有需求做网站的公司/灰色seo关键词排名