CLion作为JetBrain出品的跨平台环境下强大的C/C++ IDE,满足了在Mac上开发的一大堆需求。而之前使用中比较麻烦的一点是CLion无法实现全自动的远程编译+调试。然而,自v2018.3版本之后,CLion推出了Full Remote Mode
,实现了轻松一点即可在本地完成远端设备上的编译与调试。借助这个,甚至可以实现在Mac上完成对树莓派一类嵌入式系统的编译和调试工作,同时也可以完成用Docker启个系统做编译的操作。
要点
- 本地系统: macOS, Linux or Windows
- 远端系统: Linux
- 代码位置:原始处于本地机器上,CLion会自动同步到远端机器上
- 项目模式:CMake Project才可使用
- 本地设备为macOS或Linux系统的情况下,需要安装
rsync
,如果是Windows,需要sftp
和gzip
压缩以便代码同步.
步骤
新建一个带远程调试的工具链
- 到
Settings / Preferences | Build, Execution, Deployment | Toolchains
点击左下角加号➕
图标新建一个工具链。 - 从下拉菜单选择
Remote Host
并点击Credentials
右侧的齿轮图标配置远端连接,在打开的对话框中,将ssh的用户名密码配置进去以登录远端机器。 - 建立连接后,CLion会在远端机器的
/usr/bin/cmake
和/usr/bin/gdb
两个默认地址查找CMake和GDB,如果没有的话,需要人工配置下对应的地址。
(如果你和我一样是CentOS 7.x的用户,你会发现机器里的GDB版本默认是7.6版的,无法满足CLion的要求,需要去下一个符合标准的版本编译安装) - 可以通过上下表示把新建立的远程调试设为默认方式,设为默认值后,远程调试会成为你所有新建和打开工程的默认调试方式。
建立相应CMake文件
到Settings / Preferences | Build, Execution, Deployment | CMake
选项下,点击加号按钮新建一个CMake配置,在Toolchain
中使用刚刚建立的远程调试工具链
检查与调整部署配置
- 当你建立了一个到远端机器的链接,CLion会把这个链接加入到
Settings / Preferences | Build, Execution, Deployment | Deployment
,可以查看确认:
同时,在Mappings
选项卡下,可以修改代码上传到远端之后的目录,以不上传到默认的tmp
目录中: - 通过
File Transfer
窗口(View | Tool Windows | File Transfer
)可以监控整个同步过程:
同步头文件搜索目录
为了正确解析并编译代码,CLion需要把你的头文件搜索目录全部同步到远端。但由于耗时比较长,v2019.1版本之后,CLion只在第一次同步的时候自动同步头文件,后面的时间都需要用户通过Tools | Resync with Remote Hosts
自行手动同步头文件搜索目录。
编译、运行与调试
配置完成之后,选择对应建立的CMake配置,即可实现代码远程调试。
可以用如下代码验证下执行的效果:
1 |
|
参考资料
CLion - Full Remote Mode
Stay local, let your IDE do remote work for you!