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