Linux环境下CMake配置fftw库提示找不到fftw3.h如何解决
问题根因
出现fftw3.h: No such file or directory错误是两处配置错误共同导致的:
- 未将FFTW的头文件目录添加到CMake的头文件搜索路径中,编译器无法定位
<fftw3.h>文件 - 链接规则配置错误,
target_link_libraries( main ./fftw)为非法写法,无法正确关联FFTW的库文件
修复步骤
- 先确认FFTW安装生效:回到
./fftw目录执行sudo make install,默认会将FFTW头文件安装到/usr/local/include,库文件安装到/usr/local/lib - 在CMakeLists.txt中添加FFTW头文件搜索路径
- 在CMakeLists.txt中添加FFTW库文件搜索路径
- 修正FFTW库的链接配置
完整修改后的CMakeLists.txt
cmake_minimum_required(VERSION 2.8) # CMake version check project( main ) find_package( OpenCV REQUIRED ) # 同时添加OpenCV和FFTW的头文件搜索路径 include_directories( ${OpenCV_INCLUDE_DIRS} /usr/local/include ) # 添加FFTW库文件搜索路径 link_directories(/usr/local/lib) add_executable( main main.cpp ) # set(CMAKE_BUILD_TYPE Debug) # 同时链接OpenCV和FFTW3库 target_link_libraries( main ${OpenCV_LIBS} fftw3 )
补充说明
如果不想将FFTW安装到系统路径,要直接使用本地源码编译产物,将头文件搜索路径替换为./fftw/api,库文件搜索路径替换为./fftw/.libs即可。
若编译完成后运行程序提示找不到libfftw3.so,执行sudo ldconfig刷新系统动态库缓存即可解决。
内容的提问来源于stack exchange,提问作者polaupa
相关产品推荐
相关产品推荐

