Linux Mint安装Intel RealSense R200执行make命令报错排查
报错根因
该编译错误是新版GCC编译器头文件依赖检查收紧导致的:librealsense v1.12.1源码中src/types.h文件使用了std::function模板类型,但没有显式引入定义该类型的标准库头文件<functional>。旧版本GCC会通过其他引入的头文件间接加载<functional>,不会触发报错,Linux Mint新版本默认搭载的GCC 12及以上版本取消了这类隐式引入,直接抛出类型识别失败的错误,后续所有关联报错都是这个问题引发的连锁反应。
修复操作
- 进入解压后的librealsense源码根目录,打开
src/types.h文件 - 找到文件头部的头文件引入区域,在现有
#include <algorithm>行的下方,新增一行引用:
#include <functional>
- 保存文件后回到之前执行cmake的编译目录,先清理旧的编译缓存,再重新执行编译安装:
make clean make -j$(nproc) sudo make install
如果你之前是单独创建
build目录执行cmake编译的,直接进入build目录执行上述清理和编译命令即可,不需要重新跑cmake配置。
完成上述修改后,所有和std::function相关的报错都会消失,可正常走完安装流程。
内容的提问来源于stack exchange,提问作者rodolaf
相关产品推荐
相关产品推荐

