编译依赖Eigen与OMPL的Amino项目时遇编译器版本错误
构建依赖OMPL与Eigen的Amino项目时Eigen编译报错的解决
问题描述
构建依赖Open Motion Planning Library(OMPL)和Eigen的大型项目Amino时,执行make命令后出现大量编译错误(约20000行),起始错误为:
/usr/local/include/eigen3/Eigen/src/Core/util/Macros.h:711:2: error: #error This compiler appears to be too old to be supported by Eigen
所有错误均与Eigen编译失败直接相关,与项目本身代码无关,预期make能成功执行完成。
系统环境
- Ubuntu 22.04.2 LTS x86_64
- Eigen 3.3.7-2(apt安装)
- g++ 11.3.0
- 项目使用
makefile.am构建,需先运行autoreconf和./configure生成Makefile
尝试过的无效解决方法
- 按官方说明修改
ompl.pc的Cflags配置 - 切换编译标准至
-std=c++11/-std=c++17 - 移除编译命令中的
-std=参数 - 源码安装Eigen
- 检查Eigen、OMPL及编译器版本
- 修改
configure文件中的编译标准参数
通过make V=1输出确认编译时使用了-std=c++11,验证了编译标准被强制降低的猜测。
最终解决方案
卸载通过apt安装的Eigen和OMPL,重新从源码编译安装这两个依赖库后,成功构建Amino项目。
内容的提问来源于stack exchange,提问作者Benyamin
相关产品推荐
相关产品推荐

