首页 > 解决方案 > CMake INCLUDE_DIRS 变量不包含正确的路径

问题描述

我有一个项目,我正在尝试使用 CMake 在基于 Linux 的 HPC 系统上进行编译。该项目依赖于 Eigen3 包,因此我在CMAKE_PREFIX_PATH变量中指定了 Eigen3 配置文件的路径,如下所示(摘自我的 CMakeLists.txt 文件)。

set(CMAKE_PREFIX_PATH "/gpfs/loomis/apps/avx/software/Eigen/3.3.7")
find_package(Eigen3 3.3 REQUIRED NO_MODULE)
message(STATUS ${EIGEN3_INCLUDE_DIR})
include_directories(SYSTEM ${EIGEN3_INCLUDE_DIR})

注意:目录@CMAKE_PREFIX_PATH包含安装树/share/eigen3/cmake,配置文件所在的位置。CMAKE_PREFIX_PATH还包含一个/include目录。因此find_package,据我了解,检索 Eigen3 的位置应该没有任何困难。

但是,该message命令的结果是:

-- /gpfs/loomis/apps/avx/software/Eigen/3.3.7//gpfs/loomis/apps/avx/software/Eigen/3.3.7/include

不如/gpfs/loomis/apps/avx/software/Eigen/3.3.7/include预期。所以include_directories实际上并没有传递正确的包路径。我该如何解决?

先感谢您!

标签: cmakeeigen3

解决方案


推荐阅读