特征,制造和cmake之间的问题(可能是cmake错误)

Issue between Eigen, make and cmake (probably a cmake mistake)

本文关键字:cmake 错误 制造 之间 特征 问题      更新时间:2023-10-16

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

为简单起见:

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

#include <Eigen/Dense>

这是我的CMakeLists.txt:

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

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

要创建生成文件,我进入构建目录,然后键入 cmake .. 。创建了一个生成文件,但是当我尝试make时出现错误:

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

Position.h来自从github获取的代码(如果需要,我可以给你链接(。

拜托,你能给我一个搜索的方向,或者如果你发现有什么问题,我的错误是什么

谢谢!

您不能在 add_executable() 中将标头依赖项作为源文件。如果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})

参考

  • 无法使用 CMake 找到特征 3