Linux环境FFTW源码编译 | WSL编译报错解决

一、Linux中编译FFTW

1、下载FFTW源码,在源码目录创建一个build目录

2、进入build目录,使用cmake编译即可

编译动态库:

cmake ..

make

编译静态库:

cmake .. -DBUILD_SHARED_LIBS=OFF

make

如果需要单精度版本,入参ENABLE_FLOAT设置为ON:

cmake .. -DENABLE_FLOAT=ON

二、WSL环境编译

在windows的WSL环境中编译,方法是一样的,但是WSL编译的静态库在引用的时候可能会报错

报错信息

libfftw3.a(assert.c.o): relocation R_X86_64_PC32 against symbol `stdout@@GLIBC_2.2.5' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: final link failed: bad value

在Linux服务器上编译的静态库可以正常使用,另外在WSL中编译的libfftw3.a大小为9.9M,服务器上编译的libfftw3.a只有2.1M,最好使用服务器上编译的库。

如果想要用WSL编译静态库,修改CMakeList.txt,在312行增加下面的内容,重新编译即可解决报错。

add_library (${fftw3_lib} ${SOURCEFILES})
# 增加下面这一行
set_target_properties(${fftw3_lib} PROPERTIES POSITION_INDEPENDENT_CODE ON)

相关推荐

  1. Linux环境FFTW编译 | WSL编译解决

    2023-12-10 13:54:06       33 阅读
  2. LInux编译安装

    2023-12-10 13:54:06       32 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-10 13:54:06       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-10 13:54:06       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-10 13:54:06       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-10 13:54:06       20 阅读

热门阅读

  1. Electron:白话Electron开发桌面端应用

    2023-12-10 13:54:06       33 阅读
  2. K8S学习指南(4)-minikube的使用

    2023-12-10 13:54:06       37 阅读
  3. 【数据结构和算法】交替合并字符串

    2023-12-10 13:54:06       39 阅读
  4. 配置vue3+vite+eslint+prettierrc项目

    2023-12-10 13:54:06       30 阅读
  5. Android 样式与主题背景学习

    2023-12-10 13:54:06       35 阅读
  6. 华为机试真题 C++ 实现【字符串重新排列】

    2023-12-10 13:54:06       37 阅读
  7. react

    react

    2023-12-10 13:54:06      37 阅读
  8. 软考 系统架构设计师系列知识点之大数据(3)

    2023-12-10 13:54:06       41 阅读
  9. C++知识 抽象基类

    2023-12-10 13:54:06       41 阅读
  10. CSS中的水平垂直居中元素的多种方式

    2023-12-10 13:54:06       46 阅读
  11. 高防IP防御效果怎么样,和VPN有区别吗

    2023-12-10 13:54:06       35 阅读