CLion是一款非常强大的IDE,推荐土豪购买正版

1. Ubuntu系统中编译环境设置

如果有环境变量需要设置,或者需要调用source命令,建议直接把这些命令写在.bashrc文件中,或者把在终端中设置环境变量,然后再在同一终端中打开Clion。

如果在终终中直接打开CLion,再在CLion的子终端中设置变量,结果是无效的。

这是因为CLion是运行在打开clion的那个终端中,CLion的子终端其实是另一个终端。

2. 编译选项设置

File->Setting->Editor->Build, Execution, Deployment->Toolchains

Clion 连接容器 clion 使用_Clion 连接容器

File->Setting->Editor->Build, Execution, Deployment->CMake,设置CMake options,生成路径,Build Options

Clion 连接容器 clion 使用_c++_02

3. 调试代码

Run->Edit Configurations

Clion 连接容器 clion 使用_自动驾驶_03

如果需要传递参数,就把参数填写在Program arguments后面的框中

4. 在ROS中使用

在ROS中的使用与正常的使用稍有不同

4.1. 编译

在使用CLion编译之前需要先用命令行编译一下,例如用catkin_make或catkin build工具。

如果直接用CLion进行编译,Clion会把devel文件夹放到build文件夹下面。

4.2. 运行

运行你的节点之前要先在任意终端运行roscore命令。

5. 设置代码风格

File->Setting->Editor,选择任何一种语言,点击右上角的Set format即可选择代码风格,然后还可以适当地进行个性化修改。

Clion 连接容器 clion 使用_Clion 连接容器_04

写好代码后Code->Reformat Code即可自动变成合适的风格

6. 快捷键

快捷键的查询和设置在Settings->Keymap

6.1. 查询快捷键

CTRL+N 查找类
CTRL+SHIFT+N 查找文件
CTRL+SHIFT+ALT+N 查找类中的方法或变量
CIRL+B 找变量的来源
CTRL+ALT+B 找所有的子类
CTRL+SHIFT+B  找变量的类
CTRL+G 定位行
CTRL+F 在当前窗口查找文本
CTRL+SHIFT+F 在指定窗口查找文本
CTRL+R  在当前窗口替换文本
CTRL+SHIFT+R 在指定窗口替换文本
ALT+SHIFT+C 查找修改的文件
CTRL+E  最近打开的文件
F3  向下查找关键字出现位置
SHIFT+F3 向上一个关键字出现位置
F4  查找变量来源
CTRL+ALT+F7 选中的字符查找工程出现的地方
CTRL+SHIFT+O 弹出显示查找内容

6.2. 自动代码

ALT+ENTER  导入包,自动修正
CTRL+ALT+L  格式化代码
CTRL+ALT+I  自动缩进
CTRL+ALT+O  优化导入的类和包
ALT+INSERT  生成代码(如GET,SET方法,构造函数等)
CTRL+E 或者ALT+SHIFT+C 最近更改的代码
CTRL+SHIFT+SPACE 自动补全代码
CTRL+空格  代码提示
CTRL+ALT+SPACE  类名或接口名提示
CTRL+P  方法参数提示
CTRL+J  自动代码
CTRL+ALT+T  把选中的代码放在 TRY{} IF{} ELSE{} 里

6.3. 复制快捷方式

F5 拷贝文件快捷方式
CTRL+D 复制行
CTRL+X  剪切、删除行
CTRL+SHIFT+V 可以复制多个文本

6.4. 高亮

CTRL+F   选中的文字,高亮显示 上下跳到下一个或者上一个
F2 或SHIFT+F2  高亮错误或警告快速定位
CTRL+SHIFT+F7  高亮显示多个关键字

6.5. 导航类

Ctrl + N 跳转到类
Ctrl + Shift + N 跳转到符号
Alt + Right/Left 跳转到下一个、前一个编辑的选项卡
F12 回到先前的工具窗口
Esc 从工具窗口回到编辑窗口
Shift + Esc 隐藏运行的、最近运行的窗口
Ctrl + Shift + F4 关闭主动运行的选项卡
Ctrl + G 查看当前行号、字符号
Ctrl + E 当前文件弹出
Ctrl+Alt+Left/Right 后退、前进
Ctrl+Shift+Backspace 导航到最近编辑区域
Alt + F1 查找当前文件或标识
Ctrl+B / Ctrl+Click 跳转到声明
Ctrl + Shift + I 查看快速定义
Ctrl + Shift + B 跳转到类型声明

Ctrl + Alt + B 跳转到实现

Alt + Shift + Left 跳回到上一个位置
Ctrl + U 跳转到父方法、父类
Alt + Up/Down 跳转到上一个、下一个方法
Ctrl + ]/[ 跳转到代码块结束、开始
Ctrl + F12 弹出文件结构
Ctrl + H 类型层次结构
Ctrl + Shift + H 方法层次结构
Ctrl + Alt + H 调用层次结构
F2 / Shift + F2 下一条、前一条高亮的错误
F4 / Ctrl + Enter 编辑资源、查看资源
Alt + Home 显示导航条F11书签开关
Ctrl + Shift + F11 书签助记开关
Ctrl + #[0-9] 跳转到标识的书签
Shift + F11 显示书签

6.6. 编辑

CTRL+Z  倒退
CTRL+SHIFT+Z  向前

CTRL+/  注释//  
CTRL+SHIFT+/  注释/*...*/

6.7. 其他快捷方式

CTRL+ALT+F12  资源管理器打开文件夹
SHIFT+ALT+INSERT 竖编辑模式
CTRL+W 选中代码,连续按会有其他效果
CTRL+B 快速打开光标处的类或方法
ALT+ ←/→ 切换代码视图
CTRL+ALT ←/→ 返回上次编辑的位置
ALT+ ↑/↓  在方法间快速移动定位
SHIFT+F6  重构-重命名
CTRL+H 显示类结构图
CTRL+Q 显示注释文档
ALT+1  快速打开或隐藏工程面板
CTRL+SHIFT+UP/DOWN 代码向上/下移动。
CTRL+UP/DOWN 光标跳转到第一行或最后一行下
ESC 光标返回编辑框
SHIFT+ESC 光标返回编辑框,关闭无用的窗口
F1 帮助

CTRL+F4 关闭文件

7. 解决卡顿问题

CLion使用过程中可能经常遇到卡顿问题,这是因为CLion占用资源比较大,但系统分配的内存比较少

这时只需设置一下,增加内存即可。

有以下两种方法可以打开配置文件:

方法一:直接编辑设置文件

使用文本查看器打开clion.vmoptions文件

Mac中路径是 /Applications/CLion.app/Contents/bin/clion.vmoptions

Ubuntu中路径是 clion/bin/clion.vmoptions

方法二:通过导航按钮设置

Help->Edit Custom VM Options

两种方法都能见到如下配置文件

-Xss8m
-Xms520m
-Xmx520m
-XX:NewSize=128m
-XX:MaxNewSize=128m
-XX:ReservedCodeCacheSize=240m
-XX:+UseCompressedOops
-Dfile.encoding=UTF-8
-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=50
-ea
-Dsun.io.useCanonCaches=false
-Djava.net.preferIPv4Stack=true
-Djdk.http.auth.tunneling.disabledSchemes=""
-XX:+HeapDumpOnOutOfMemoryError
-XX:-OmitStackTraceInFastThrow
-Xverify:none

-XX:ErrorFile=$USER_HOME/java_error_in_clion_%p.log
-XX:HeapDumpPath=$USER_HOME/java_error_in_clion.hprof

注意第3行-Xmx520m,是用来设置内存的,其格式是-Xmx[分配的内存容量],如果设置成8GB,也就是8192MB,就是-Xmx8192m,就解决了此问题。

重启一下CLion设置才能生效。

8. 远程调试

打开CLion的设置,进入到 Preferences | Build, Execution, Deployment | Deployment

点加号,添加一个远程配置

设置为SFTP协议,设置远程ip、port、pass然后点击Test Connection,确认是否连接成功

Clion 连接容器 clion 使用_c++_05

切换到Mappings

设置本地的代码根目录Local path

设置远程的代码根目录 Deployment pat

Clion 连接容器 clion 使用_c++_06

Upload是上传,Download是下载

Clion 连接容器 clion 使用_CL_07

  • 添加一个GDB远程调试的配置 GDB Remote Debug
  • 设置远程访问参数(target remote args): tcp:xx.xx.xx.xx:1234
  • 设置远程路径和本地路径的映射(Path mappings)
  • 远程调试连接成功后,像本地调试一样,可以设置断点,单步跟踪等
  • 调试需要本地和远程的代码一致

Clion 连接容器 clion 使用_linux_08

 

Clion 连接容器 clion 使用_c++_09

9. Docker开发

docker上开发与远程开发很像

sudo docker run --privileged -itd -p 9088:22

Clion 连接容器 clion 使用_c++_10

10. Git工具

CLion可以用来解Git冲突

使用方法是:VCS->Git->Resolve Conflicts

Clion 连接容器 clion 使用_linux_11

依次选择有冲突的文件,点击Merge后会出现三路合并的界面

11. 同时管理多个工程

有时整套代码是由多个工程构成的,例如一个工程用于生成链接库,另一个工程调用该链接库。

Clion并不能同时管理多个工程,所以只能临时建立一个新的工程用来管理这两个工程

把这些工程放在同一个目录,在这个目录放一个CMakeLists.txt文件,内容如下

cmake_minimum_required(VERSION 3.14)
project(xxx)

add_subdirectory(link_library_1_path)
add_subdirectory(link_library_1_path)
add_subdirectory(executable_file_path)

 Clion管理这个新的工程即可

12. 修改输出缓冲出大小

Clion 连接容器 clion 使用_c++_12

13. 使用问题汇总

13.1. 文件不属于任何工程

现象

This file does not belong to any ...

原因

这是因为修改了CMakeLists.txt文件,但clion并没有根据新的CMakeLists.txt文件去理解Project

解决方法

Tools->CMake->Reload CMake Project