在CLion中导入ROS项目及工作空间报错,如何配置识别.bash_profile
解决CLion桌面启动时无法识别ROS环境变量的问题
你已经把ROS工作空间的环境配置写在了.bash_profile里,还通过.bashrc加载它,但桌面快捷方式启动的CLion没继承这些环境变量——这是因为桌面程序默认在非交互式、非登录shell下启动,不会自动读取.bashrc或.bash_profile的配置。下面给你几个靠谱的解决办法:
方法一:修改CLion桌面快捷方式,强制加载环境变量
这是最彻底的方案,以后从桌面启动CLion都会自动带上ROS环境:
- 找到CLion的桌面配置文件(
.desktop),一般在~/.local/share/applications/目录下,文件名类似jetbrains-clion.desktop; - 用文本编辑器打开它,找到
Exec开头的行,把原启动命令改成:
这里的Exec=bash -i -c "/path/to/your/clion/bin/clion.sh"-i参数会让bash以交互式shell启动,自动加载.bashrc(而你的.bashrc已经source了.bash_profile,ROS环境变量也就跟着导入了)。要是想更直接,也可以在启动命令里直接source你的ROS工作空间:Exec=bash -c "source /home/joesan/Projects/Private/ros-projects/catkin_ws/devel/setup.bash && /path/to/your/clion/bin/clion.sh" - 保存文件后,右键桌面快捷方式选"刷新"(或重新登录桌面),再启动CLion就能找到catkin了。
方法二:在CLion内部手动配置CMake环境变量
不想改桌面快捷方式的话,也可以直接在CLion里给CMake指定ROS路径:
- 打开CLion,进入
File -> Settings -> Build, Execution, Deployment -> CMake; - 在CMake options里添加以下参数:
要是有多个ROS工作空间,把它们的devel路径用冒号分隔加进去就行:-DCMAKE_PREFIX_PATH=/home/joesan/Projects/Private/ros-projects/catkin_ws/devel-DCMAKE_PREFIX_PATH=/home/joesan/Projects/Private/ros-projects/catkin_ws/devel:/path/to/another/workspace/devel - 点击"Apply"保存,重新加载CMake项目就搞定了。
方法三:从终端启动CLion(临时应急用)
要是只是临时解决问题,最快的方式就是从已经加载ROS环境的终端启动CLion:
- 打开终端(此时已经加载了
.bashrc和.bash_profile的配置); - 直接输入
clion(如果CLion启动脚本已加入系统PATH),或者输入完整路径:
这样启动的CLion会完全继承终端的环境变量,自然能找到catkin。/path/to/your/clion/bin/clion.sh
补充说明
为什么桌面启动会出问题?因为Linux桌面环境(比如GNOME、KDE)启动应用时,不会像终端那样启动交互式登录shell,所以.bashrc、.bash_profile这些shell配置文件不会被自动执行,ROS环境变量没导入,CMake自然找不到catkin的位置。
内容的提问来源于stack exchange,提问作者joesan
相关产品推荐
相关产品推荐

