error: 'Eigen/Core' file not found

首先你要先使用brew安装过Eigen3 。 然后你在使用这个库的时候,你会天真的以为在CMakeLists中这样写:

find_package(Eigen3 REQUIRED)

include_directories(${Eigen3_INCLUDE_DIRS})

然后你在你的CPP文件中也能#include <eigen3/Eigen/Eigen> ,宽且也能提示到。但是编译就报错了

fatal error: 'eigen3/Eigen/Core' file not found

此时,你会看看你的 /usr/local/include/eigen3目录,一切都正常呀?其实这个是因为在Mac上 /usr 目录下面没有include 目录,include目录放在了local目录下面了。可能是cmake找不到吧,我猜的。

因此你的CMakeLists就不能那么写了,因该把上面的常规写法注释掉,或者删除掉,改用下面的写法

include_directories("/usr/local/include/eigen3/")

直接这样写,简单粗暴。然后在你的C++文件中直接这样引用

#include <Eigen/Core>

#include <unsupported/Eigen/FFT>

然后你就可以愉快的使用Eigen了。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容