c++ - Eigen、make 和 cmake 之间的问题(可能是 cmake 错误)

标签 c++ makefile cmake eigen

我在尝试构建一些代码时遇到了问题。 (我在 Linux 上)

为了简单起见:

这是我在 Position.h 文件中得到的内容(在真正开始时,我认为下一个没有必要解决该问题):

#include <Eigen/Dense>

这是我的 CMakeLists.txt:

project(p)
include_directories("./Eigen")
add_executable(
    p
    Eigen/Dense
    Position.h # which requires Eigen/Dense
    Position.cpp
    #other files
    )

项目目录中有两个目录:build和Eigen

要创建 Makefile,我进入构建目录,然后输入 cmake ..。创建了 Makefile,但是当我尝试 make 时出现错误:

/path/to/Position.h:30:23: fatal error: Eigen/Dense: no such file or directory.

Position.h 来自 GitHub 上的代码(如果需要,我可以给你链接)。

请给我一个搜索方向,或者如果你看到什么问题,我的错误是什么

谢谢!

最佳答案

您不能在 add_executable() 中将 header 依赖项作为源文件给出。如果 Position.h 确实搜索 Eigen/Dense,您可能只需要 include_directories(.)

project(p)

include_directories(.)
add_executable(
    p
    Position.cpp
    Position.h
    #other files
)

但是为什么不使用find_module()呢?

list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}")
find_package(Eigen3 REQUIRED)
include_directories(${EIGEN3_INCLUDE_DIR})

引用

关于c++ - Eigen、make 和 cmake 之间的问题(可能是 cmake 错误),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44115214/

相关文章:

C - 使用共享库

c++ - GCC 可以在不生成目标文件或可执行文件的情况下编译和运行源代码吗?

c++ - 使用 cmake 制作一个没有 sse 支持的库(windows 版本)

python - 无法使用用于 python 的 opencv_contrib 模块构建 opencv-3.0

cmake - 在 nmake x64 中使用 cmake

c++ - 继承,覆盖和虚函数,以避免重复代码

c++ - 如何将使用Qt Paint Application绘制的图像传输到Mat openCV

c++ - C/C++ 当 select 挂起时将套接字添加到 fd_set

c++ - 需要帮助让英特尔 TBB 正常工作吗?

c++ - 如何在usr/include/linux中搜索头文件