CLion编辑代码+远程主机编译+开发板调试

前言:本文旨在帮助需要在远程主机编译程序,又在另一远程系统(比如开发板)调试程序的朋友,讲解了CLion的关键配置,实现本地编辑程序,上传到服务器编译,把可执行文件下载到本地,debug时上传到开发板,配合开发板中的gdb server进行调试。如何配置交叉编译工具链、开发板安装gdb server等请自行查阅其他地方。

CLion官方帮助文档:Complicated remote scenarios | CLion Documentation (jetbrains.com),JetBrains自家的文章写的也很清楚了,有兴趣的朋友可以直接看英文原文。

准备环境
1、CLion软件:下载 CLion:用于 C/C++ 开发的智能跨平台 IDE (jetbrains.com)
2、交叉编译环境,比如ubuntu主机+arm-xx-gcc,ubuntu主机需要安装较新版本的cmake,ubuntu自带的cmake版本太低,可能无法配置成功。
3、开发板带有gdb server。

正文

1、CLion配置交叉编译工具链。

配置之前,先创建一个“C Executable”工程,并创建一个debug目录,放置之后编译好的可执行文件。

参考配置:
Name:工具链名称。
Credentials:连接ubuntu主机的凭据。
C Compiler:/home/book/100ask_imx6ull-sdk/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot/bin/arm-buildroot-linux-gnueabihf-gcc
C++ Compiler:/home/book/100ask_imx6ull-sdk/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot/bin/arm-buildroot-linux-gnueabihf-g++

配置工具链

配置完工具链后,我们还要将其设置为当前项目的CMake工具。

配置CMake

2、编译可执行文件并下载到本地。

工具链配置好之后,我们点击右上角的“编译”(小锤子)按钮。成功编译后,我们可以看到如下信息:可执行文件的名称就是当前工程的名称“Remote_GDB_ARM_Board”。

Build

接着,我们可以直接在CLion打开一个终端,用scp命令下载到当前工程的debug目录。

参考命令:scp book@192.168.5.11:/tmp/tmp.qlQJ83CF4j/cmake-build-debug-arm-build-tencentcloud/Remote_GDB_ARM_Board debug

可以通过配置密钥对的方法,来实现免密连接服务器,有关配置请查阅其他文章。

scp连接


scp成功下载

3、CLion配置开发板的gdb server。

接下来,我们点击顶部工具栏“编译按钮”左侧的下拉框,点击“Edit Configurations“。

Build——Edit Configurations

左上角“+”号,选择新增一个“Remote GDB Server”。

Remote GDB Server

然后填写红框中的内容:
Name:随便,可以写gdb server。
Executable:就选择我们之前下载到debug目录的可执行文件。
Credentials:填写连接开发板的凭据。
Upload Path:选择上传到开发板的目录。
target remote args:gdb server IP+端口号。

新增gdb server

下面是我自己的配置。

gdb server

4、配置“Run external tool”,用 scp 下载文件到本地。(非必要

添加玩gdb server的信息后,下方的“before launch”,我们新增一个外部工具,每次启动调试前执行scp命令,从服务器下载可执行文件。前提是我们实现了免密登录服务器,否则执行scp无法输入密码,这个“Run external tool”是无法成功执行的,调试也跑不起来。或者我们每次手动在终端执行scp,就可以输入密码了。


新增 Run External tool
新增 Run External tool

Name:copy_binary。
Program:scp
Arguemnts:book@192.168.5.11:/tmp/tmp.qlQJ83CF4j/cmake-build-debug-arm-build-tencentcloud/Remote_GDB_ARM_Board debug

切换到gdb sever的配置

配置完成后,我们先切换到gdb sever的配置,然后打个断点,调试下试试,如下图:

停止在断点处

5、使用gdb server时如何传入程序参数。

还是编辑gdb server的配置页面,然后我们填写“GDB Server args”,用逗号分隔“:1234 /mnt/sd/Remote_GDB_ARM_Board /dev/input/event0”,即”:端口号 可执行文件 程序参数“。

启动调试程序时的传参

参考文献
Complicated remote scenarios | CLion Documentation (jetbrains.com)
Specify "Program Arguments" in "Remote GDB Server" : CPP-22678 (jetbrains.com)
External tools | CLion Documentation (jetbrains.com)
Remote SSH External Tools | CLion Documentation (jetbrains.com)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,132评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,802评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,566评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,858评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,867评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,695评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,064评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,705评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,915评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,677评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,796评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,432评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,041评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,992评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,223评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,185评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,535评论 2 343

推荐阅读更多精彩内容