在catkin_ws执行catkin_make遇CMake错误,ROS版本冲突如何解决?
解决ROS多版本环境冲突导致catkin_make失败的问题
核心问题:你的系统中同时配置了ROS Foxy和Noetic两个版本的环境变量,导致catkin_make解析环境时出现语法错误(提示ROS_DISTRO was set to 'foxy' before)。
解决步骤:
临时清除当前终端的ROS环境变量
执行以下命令快速消除当前会话的环境冲突:unset ROS_DISTRO ROS_ROOT ROS_PACKAGE_PATH永久修复shell配置文件
打开默认shell配置文件:nano ~/.bashrc找到所有包含ROS的
source命令,注释掉Foxy相关配置,保留Noetic的配置,示例如下:# source /opt/ros/foxy/setup.bash # 注释该行,禁用Foxy环境 source /opt/ros/noetic/setup.bash # 保留Noetic环境配置 # source ~/catkin_ws/devel/setup.bash # 暂时注释,重新构建后可恢复保存并退出编辑器(按
Ctrl+O回车确认保存,Ctrl+X退出)。
若使用zsh,需修改~/.zshrc文件,操作逻辑一致。刷新环境变量
source ~/.bashrc清理旧构建文件
进入catkin工作空间,删除之前的构建缓存:cd ~/catkin_ws rm -rf build devel重新执行catkin_make
catkin_make
内容的提问来源于stack exchange,提问作者Sugan S
相关产品推荐
相关产品推荐

