Ubuntu下源码编译ROS2时osrf_testing_tools_cpp编译失败求助
osrf_testing_tools_cpp编译失败的原因
从错误日志来看,核心问题出在C++标准版本不匹配,具体细节如下:
- 代码中用到了
std::filesystem,这个组件是C17标准才引入的,但你的编译环境没有启用C17或更高版本的编译标准。 - 大概率是CMake配置里的
CMAKE_CXX_STANDARD被设置成了C++14或更低版本,导致编译器无法识别std::filesystem相关的语法和头文件。 - 另外,若你使用的GCC版本低于8.0,或者Clang版本低于9.0,这类旧版本编译器对C++17的
std::filesystem支持存在缺陷,也会触发该错误。
额外排查点:也有可能是系统缺少libstdc++-dev这类包含C标准库头文件的依赖包,但最直接的触发原因还是C标准版本未达标。
内容的提问来源于stack exchange,提问作者Parth Patel
相关产品推荐
相关产品推荐

