使用 FFTW3 bib 与犰狳计算 fft

问题描述 投票:0回答:1

我想用犰狳计算fft,为了提高性能,我已经激活了FFTW3 bib的使用。

这是代码:

#define ARMA_USE_FFTW3
#include <armadillo>

int main()
{
    arma::vec X(100, arma::fill::randu);

    arma::cx_vec Y = arma::fft(X, 128);

    return 0;
}

错误:

错误 LNK2019 无法解析函数 void arma::fftw3::destroy_plan 中引用的外部符号 fftwf_destroy_plan。

我确实成功链接了犰狳围兜和 FFTW3。 分别armadillo和fftw3编译成功。

我正在使用:

  • 犰狳12.4.1
  • fftw 3.3.10
  • c++20
  • 项目cmake
  • 视觉工作室

cmakelist.txt

set(INC_DIR D:/fftw-3.3.10.tar/fftw-3.3.10/fftw-3.3.10/api/)
set(LINK_DIR D:/fftw-3.3.10.tar/fftw-3.3.10/fftw-3.3.10/build/Release/)
include_directories(${INC_DIR})  
link_directories(${LINK_DIR})
link_libraries(fftw3)

# include armandilo
set(INC_DIR_arma D:/EndusV3/code/libExtern/armadillo-12.4.1/include)
set(LINK_DIR_arma D:/EndusV3/code/libExtern/armadillo-12.4.1/lib_win64)
include_directories(${INC_DIR_arma})  
link_directories(${LINK_DIR_arma})
link_libraries(libopenblas)

感谢您考虑我的请求。

我尝试分别编译armadillo和fftw3,编译成功。

我认为犰狳和 fftw3 之间的版本不兼容。

c++ armadillo fftw
1个回答
0
投票

我设法修复了链接错误。我在 fftw3 网站上找到了解决方案。 : http://www.fftw.org/install/windows.html

问题是缺少库(fftw3 的浮点和双精度版本)。

© www.soinside.com 2019 - 2024. All rights reserved.