Ubuntu下安装Clion

前言

CLion 是一款由 JetBrains 开发的 C++ 集成开发环境(IDE),它拥有许多强大的功能,如代码自动完成、调试器、版本控制等等。CLion本身是收费软件,但如果是学生的话可以申请免费使用。
测试安装环境:Ubuntu18、Ubuntu22

1.Clion安装

(1)官方下载安装包

官方下载安装包

image-20230409165524190

(2)解压安装包

gzip -d CLion-2023.1.1.tar.gz
tar -xvf CLion-2023.1.1.tar

(3)替换jbr文件夹

jetbrains全家桶在Ubuntu中使用会出现输入法不跟随的问题,需要将源文件中的jbr文件夹替换来解决

先在github上下载好别人重新编译过的jbr文件:(如果Clion版本越新,下载的jbr版本也要越新,我使用的是Clion2023版本,下载的jbr是release 17.0.6版本)

image-20230409170019866

下载好后解压重命名为jbr

image-20230409170135438

然后替换到Clion安装包中的jbr文件夹:

image-20230409170207386

(4)将安装包复制到\opt

sudo cp -rf CLion-2023.1.1 /opt

(5)执行安装程序

cd /opt/CLion-2023.1.1/bin
sh clion.sh

(6)创建桌面快捷键
(初始安装好的话,应该是英文界面,下图是我安装了中文插件)
image-20230409170428600

(7)下载汉化版插件

在clion的设置中的plugs选项中下载汉化包插件:

image-20230409170521043

2.Clion配置项目

(1)编译器配置

image-20230409170909759

(2)cmake配置

image-20230409171021114

(3)clion是如何运行项目的

clion是通过cmake编译运行项目的,而cmake编译运行项目可以分为三个步骤:

一是cmake <source tree>,比如cmake ..,用于生成了项目文件project files;

二是cmake --build .build的功能就是依据当前系统的编译器自适应的构建项目(或者说编译链接项目),当你明确知道自己系统的编译器是Unix Makefiles,也可以直接使用make进行项目构建;

三是运行编译好的可执行文件,比如./main;

回归到clion中,前面两个步骤其实就是配置编译器的路径和cmake的命令行参数,配置好后运行一个项目其实也和cmake一样分为三个步骤:

一是cmake ..,clion在打开项目时会自动cmake ..一遍,默认是生成在cmake-build-debug文件夹中,当然也可以手动执行:右键项目,选择reload cmake project;每当你修改了CMakeLists.txt文件后都需要reload cmake project,所以我建议设置一个reload cmake project的快捷键;

二是cmake --build .,就是对应clion中的build按钮的功能,如果报错说:Error: could not load cache,那就是你没有完成步骤一的reload cmake project

image-20230409195358857

三是./main,clion中的run按钮,其实run按钮会同时完成步骤二和步骤三,也就是run会先build,然后运行可执行文件;

image-20230409195531739
最后一个七星瓢虫一样的图案就是调试代码,比起vscode调试代码还要配置半天要简单多了。

3.Clion调试ROS项目

调试一般的C++项目,直接点击调试按钮即可,如果是ROS项目则还需要一些步骤。
(1)修改Clion的启动方式

由于ROS的功能包需要先source,所以得把clion的启动方式改为bash启动,这样会先自动source功能包,否则会出现错误:

message(FATAL_ERROR “find_package(catkin) failed. catkin was neither found in the workspace nor in the CMAKE_PREFIX_PATH. One reason may be that no ROS setup.sh was sourced before.”)

修改方法:

sudo gedit /usr/share/applications/jetbrains-clion.desktop

修改里面的Exec行,修改后的内容如下:

[Desktop Entry]
Version=1.0
Type=Application
Name=CLion
Icon=/opt/clion-2023.1.1/bin/clion.svg
#Exec="/opt/clion-2023.1.1/bin/clion.sh" %f
Exec=bash -i -c "/opt/clion-2023.1.1/bin/clion.sh" %f
Comment=A cross-platform IDE for C and C++
Categories=Development;IDE;
Terminal=false
StartupWMClass=jetbrains-clion
StartupNotify=true

(2)运行clion,打开ROS项目

选择CMakeLists文件时,选择为catkin_workspace/src/CMakeLists.txt文件,不要选择子功能包里面的了

(3)修改CMake配置文件

-DCATKIN_DEVEL_PREFIX=../devel
../build

image-20230606210604148
(4)调试ROS节点程序
Clion打开ROS项目后,会自动加载显示该ROS项目的全部节点:

image-20230724093903956

选择要调试的节点,此外如果启动该节点还需要程序实参,可以如下添加实参:

image-20230724094144466

image-20230724094157834

之后需要重新构建程序:

image-20230724094415204

构建成功后,可以点击要调试的部分,并启动调试:(调试的时候可能需要终端启动roscore)

image-20230724094456931

image-20230724094507206

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/137537.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2614. 对角线上的质数-c语言解法

给你一个下标从 0 开始的二维整数数组 nums 。 返回位于 nums 至少一条 对角线 上的最大 质数 。如果任一对角线上均不存在质数&#xff0c;返回 0 。 注意&#xff1a; 如果某个整数大于 1 &#xff0c;且不存在除 1 和自身之外的正整数因子&#xff0c;则认为该整数是一个…

iOS蓝牙 Connection Parameters 关键参数说明

1. 先贴苹果文档 《 Accessory Design Guidelines for Apple Devices 》 2. 几个关键词 connection Event Interval 事件间隔&#xff0c;为1.25ms的倍数。可以简单理解为,是两个连接着的蓝牙设备发送“心跳包”的时间间隔&#xff1b; 范围是 6 ~ 3200&#xff0c;即 7.5…

【ArcGIS】土地利用变化分析详解(栅格篇)

土地利用变化分析详解-栅格篇 土地利用类型分类1 统计不同土地利用类型的面积/占比1.1 操作步骤 2 统计不同区域各类土地利用类型的面积2.1 操作步骤 3 土地利用变化转移矩阵3.1 研究思路3.2 操作步骤 4 分析不同时期土地利用类型及属性变化4.1 研究思路4.2 操作步骤 参考 土地…

建不同锁对象对同表同数据加锁会怎样?

建不同锁对象对同表同数据加锁会怎样&#xff1f; 同事突然问我这个问题&#xff0c;这种东西动手测一下&#xff0c;两分钟的事儿。验证下自己心中所想。 建俩锁对象~ 代码 打断点 执行&#xff1a; 能动手就敲一下&#xff0c;懒得想&#xff0c;懒得记~ 推荐阅读&#xff1a…

ETLCloud助力富勒TMS实现物流数仓同步

富勒TMS提供了多种运输管理业务的解决方案&#xff0c;极大的方便了企业对物流的管理和人力输出&#xff0c;同时提供了大量的API接口&#xff0c;供用户做数据集成和数仓同步。 通过富勒TMS中心&#xff0c;第三方开发者和商家可实现以下功能&#xff1a; MS系统数据同步&…

【QT】day4

闹钟 头文件&#xff1a; #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QDebug> #include <QMouseEvent> //鼠标时间 #include <QPaintEvent> //绘制时间 #include <QPainter> //画家时间 #include <QPixmap> //图…

Python实现MYSQL蜜罐

1 LOAD DATA INFILE介绍 首先开启一个Mysql&#xff0c;看一下mysql是如何读取主机文件的。 1.1 linux搭建mysql 1&#xff09;docker运行mysql 2&#xff09;启动Mysql docker run -itd…

Android Studio插件版本与Gradle 版本对应关系

关于作者&#xff1a;CSDN内容合伙人、技术专家&#xff0c; 从零开始做日活千万级APP。 专注于分享各领域原创系列文章 &#xff0c;擅长java后端、移动开发、商业变现、人工智能等&#xff0c;希望大家多多支持。 目录 一、导读二、概览三、Gradle各版本对应关系3.1 Gradle 版…

【C++】STL详解(六)—— list的模拟实现

​ ​&#x1f4dd;个人主页&#xff1a;Sherry的成长之路 &#x1f3e0;学习社区&#xff1a;Sherry的成长之路&#xff08;个人社区&#xff09; &#x1f4d6;专栏链接&#xff1a;C学习 &#x1f3af;长路漫漫浩浩&#xff0c;万事皆有期待 上一篇博客&#xff1a;【C】STL…

移动测试之语音识别功能如何测试?

移动测试之语音识别功能如何测试&#xff1f; 要知道语音识别功能如何测试&#xff0c;我们先了解智能产品语音交互流程&#xff1a; 所以&#xff0c;要进行测试的话&#xff0c;我们需要从以下几个维度来准备测试点&#xff1a; 基础功能测试&#xff1a; 1、声纹的录入&…

【Java 基础篇】Java Condition 接口详解

Java 提供了一种更灵活和高级的线程协作机制&#xff0c;通过 Condition 接口的使用&#xff0c;你可以更精细地控制线程的等待和唤醒&#xff0c;实现更复杂的线程同步和通信。本文将详细介绍 Java 的 Condition 接口&#xff0c;包括它的基本概念、常见用法以及注意事项。 什…

MyBatis 篇

目录 1、什么是MyBatis 2、说说MyBatis的优点和缺点 3、#{}和${}的区别是什么&#xff1f; 4、当实体类中的属性名和表中的字段名不一样 &#xff0c;怎么办 &#xff1f; 5、Mybatis是如何进行分页的&#xff1f;分页插件的原理是什么&#xff1f; 6、Mybatis是否支…

【大数据之Kafka】十五、Kafka-Kraft模式

1 Kafka-Kraft架构 左图为 Kafka 现有架构&#xff0c;元数据在 zookeeper 中&#xff0c;运行时动态选举 controller&#xff0c;由controller 进行 Kafka 集群管理。   右图为 kraft 模式架构&#xff08;实验性&#xff09;&#xff0c;不再依赖 zookeeper 集群&#xff0…

mysql 锁总结

redo log 是事务持久性的保证 undo log 是事务原子性的保证 锁机制 是事务隔离性的保证 MySQL的自动加锁依赖于数据库的事务机制。当事务对某个数据行进行更新操作时&#xff0c;MySQL就会自动给该行加上排他锁&#xff0c;防止其他事务同时对其进行修改。同时&#xff0c;MySQ…

【Linux】常用工具(下)

Linux常用工具 一、Linux 项目自动化构建工具 - make/Makefile1. 依赖关系和依赖方法2. 伪目标3. make/Makefile 具有依赖性的推导能力&#xff08;语法扩展&#xff09;4. 编写一个进度条代码&#xff08;1&#xff09;缓冲区&#xff08;2&#xff09;\n 和 \r&#xff08;3&…

硬件学习 PAD9.5 day02 原理图绘制中的操作,PCB 封装的制作

1. 原理图中的连线操作 1.1 点击连线按钮 1.2 点击需要连线的地方连接即可 1.3 双击即可停止连线 2. 原理图的总线绘制 2.1 按下总线绘制按钮 2.2 画一条总线 总线名称 总线名字 [ 起始数字 &#xff1a; 结束数字 ] 2.3 分线连接总线 注意&#xff1a;原理图的连线…

MySQL常用配置详解

目录 一、MySQL 查看配置信息二、MySQL 查看服务器当前运行状态的信息三、MySQL 常用配置详解1、mysql&#xff08;使用mysql命令登录数据库时的默认的设置&#xff09;2、client &#xff08;客户端默认设置内容&#xff09;3、mysqld&#xff08;服务端端配置&#xff09; 四…

【计算机网络】 拥塞控制

文章目录 背景TCP的四种拥塞控制算法慢开始与拥塞避免&#xff1a;快重传&#xff1a;快恢复&#xff1a; 流量控制和拥塞控制本质上的 区别 背景 网络中的链路容量和交换节点中的缓存和处理机都有着工作的极限&#xff0c;当网络的需求超过他们的工作极限时&#xff0c;就出现…

黄金代理前景如何,有得搞吗?

现货黄金代理这个职业时常都听人说过了&#xff0c;随着近期现货黄金走势不断出现行情&#xff0c;尤其是美国通胀严重&#xff0c;地缘政治局势频发&#xff0c;黄金走势不断获得支撑而走高。在这样的背景下&#xff0c;现货黄金代理这个职业的前景如何呢&#xff1f; 其实对于…

肖sir__mysql中数据库后端无法展示

mysql中数据库后端无法展示&#xff1a; 错误现象 解决方法&#xff1a; mysql中数据库后端无法展示&#xff1a;my.cnf (5,7数据库) 在 mysql 配置文件中加入&#xff1a; sql_modeNO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 或者重启数据库