ubuntu - CMake FIND_LIBRARY : link to specified library error

标签 ubuntu cmake

我已经在我的电脑上安装了 FFTW3 库,在/usr/lib 中可以找到以下文件:

libfftw3f.so.3          libfftw3l_threads.so.3
libfftw3f.so.3.3.0      libfftw3l_threads.so.3.3.0
libfftw3f_threads.so.3      libfftw3.so.3
libfftw3f_threads.so.3.3.0  libfftw3.so.3.3.0
libfftw3l.so.3          libfftw3_threads.so.3
libfftw3l.so.3.3.0      libfftw3_threads.so.3.3.0

我想安装另一个需要链接这些库的包,但是当我尝试 FIND_LIBRARY(FFTW3_LIBRARIES fftw3)FIND_LIBRARY(FFTW3_LIBRARIES fftw3f), 它就是找不到库。

我该如何解决这个问题?谢谢!

CMakeLists.txt 中的代码:

FIND_PATH(FFTW3_INCLUDE_DIR fftw3.h)
IF(FFLD_HOGPYRAMID_DOUBLE)
  FIND_LIBRARY(FFTW3_LIBRARIES libfftw3.so.3)
ELSE()
  FIND_LIBRARY(FFTW3_LIBRARIES libfftw3f.so.3)
ENDIF()
#IF(NOT FFTW3_INCLUDE_DIR OR NOT FFTW3_LIBRARIES)
IF(NOT FFTW3_INCLUDE_DIR OR NOT FFTW3_LIBRARIES)
  MESSAGE(FATAL_ERROR "Could not find fftw3.")
ENDIF()

错误信息:

CMake Error at CMakeLists.txt:52 (MESSAGE):
  Could not find fftw3.

最佳答案

你安装了动态库,但是你安装了“开发”包吗?您可能需要一个名为如下的文件或符号链接(symbolic link):

libfftw3.so

您可能需要安装 fftw3-devel(或 fftw3-dev)包。

此外,尝试删除“lib”前缀和 .so.3 后缀:

FIND_LIBRARY(FFTW3_LIBRARIES NAMES fftw3 libfftw3)

如果这不起作用,请尝试添加 PATHS 参数:

FIND_LIBRARY(FFTW3_LIBRARIES NAMES fftw3 libfftw3 PATHS /usr/lib <other paths>)

确保 CMAKE_FIND_ROOT_PATH 变量设置正确(假设您没有交叉编译,所以它可能是空的,cmake 将使用合理的位置来查找库)。

有关 find_library 函数的详细用法,请参阅 cmake 手册页。

最后,查看此站点以了解如何编写 find_package 脚本: http://www.cmake.org/Wiki/CMake:How_To_Find_Libraries

关于ubuntu - CMake FIND_LIBRARY : link to specified library error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15285969/

相关文章:

c++ - 验证我对 CMakeLists.txt 文件的理解

visual-studio - CMake 如何为 Visual Studio 2015 项目指定 "Platform Toolset"?

windows - CMake 在 Windows 上找不到库

java - 尝试在 Eclipse 中创建新项目时出现 "Build path entry is missing"错误

linux - GNU screen 硬状态行中的系统加载

php - 图片不是在 digitalocean 上的 ubuntu 服务器中使用 php 上传的吗?

python - python 2 和 3 的目录位置

c - 在 Windows 上使用 CMake 时找不到包含的目录

ubuntu - Emacs -nw 模式键绑定(bind)与统一冲突

R - 在 RStudio 上安装 rJava - Amazon Cloud