gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 01:40:05 25 4
gpt4 key购买 nike

我在尝试构建一些代码时遇到了问题。 (我在 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

要创建 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com