【clion安装】【在clion中配置使用和调试ros工程】
0 前言
0.1 clion下载安装
- 首先你得有clion,clion的安装就不用多说了,我的版本是
clion-2022.1.2
- 去官网下载安装包
- 使用
tar -zxvf CLion-20xx.x.x.tar.gz
解压 - 运行clion安装脚本
cd clion-2016.2.2/bin/
./clion.sh
0.2 登陆自己的账号
- 破解没有学
1 启动clion
1.1 将clion环境添加在~/.bashrc
sudo gedit ~/.bashrc
#在bashrc文件底部中加入
export PATH="/home/bupo/CLion-2022.1.2/clion-2022.1.2/bin:$PATH" #地址根据自己改
#保存退出
source ~/.bashrc
1.2 在ROS工作空间使用命令行启动clion
- 看到文章说推荐此方法,打开任何ROS项目不会出错
- 运行命令行启动clion的脚本是为了启动ros的相关环境变量。
cd ~/catkin_ws/src/ // 首先,进入工作空间的src【这里为你自己的项目空间】
clion.sh //打开新的终端,输入此命令,启动clion
1.3 使用clion图标启动clion
- 这里要改启动文件,我没试,觉得上面麻烦的可以试试这种,不知道修改启动文件对其他工程有误影响
2 修改编译路径和cmake option
- clion的左上角 File(文件) --> Settings(设置) --> Build, Execution, Deployment(构建、执行、部署) --> 分别对Toolchains(工具链) 与 CMake 进行修改,修改内容如下两图所示:
2.
- 修改
CMake选项(CMake options)
为:-DCATKIN_DEVEL_PREFIX:PATH=/home/bupo/my_study/localization_in_auto_driving_renqian/localization_in_auto_driving_cap3/devel
; - 修改
构建目录(Generation path)
为:/home/bupo/my_study/localization_in_auto_driving_renqian/localization_in_auto_driving_cap3/build
- 其实就相当于执行命令:
/home/bupo/CLion-2022.1.2/clion-2022.1.2/bin/cmake/linux/bin/cmake --build /home/bupo/my_study/localization_in_auto_driving_renqian/localization_in_auto_driving_cap3/build --target test_frame_node -j 6
3 编译node选择
- 如果工程有多个node文件,最好每一个node都选择,然后编译一次
4 报错
4.1 报错一
- 报错如下:
CMake Error at CMakeLists.txt:9 (find_package):
By not providing "Findcatkin.cmake" in CMAKE_MODULE_PATH this project has
asked CMake to find a package configuration file provided by "catkin", but
CMake did not find one.
Could not find a package configuration file provided by "catkin" with any
of the following names:
catkinConfig.cmake
catkin-config.cmake
Add the installation prefix of "catkin" to CMAKE_PREFIX_PATH or set
"catkin_DIR" to a directory containing one of the above files. If "catkin"
provides a separate development package or SDK, be sure it has been
installed.
在对应个CMakeLists.txt添加如下代码:
set(catkin_DIR /opt/ros/melodic/share/catkin/cmake) #DIR后面是catkinconfig路径
find_package(catkin REQUIRED)
include_directories(${
catkin_DIR})