找回密码
 注册
关于网站域名变更的通知
查看: 347|回复: 1
打印 上一主题 下一主题

一键运行实时的修改,让Qt远程调试更简单

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-9-30 16:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
相信各位工程师小伙伴都有这样的体会——当调试自己的Qt程序时,尤其是在调整界面显示和整体布局时,需要频繁地制作镜像烧写到核心板里来测试Qt程序是否完善,这样的操作既费时又费力。# C( v" b7 X; ^  B; f

, l  p$ q4 o# {8 C5 M那么,有没有更快捷的方法呢?今天小编就用OKT3-C开发板来为大家介绍如何快速进行Qt远程调试。话不多说,我们直接切入正题。
4 A/ z$ ^1 {1 e: j; }5 q  ?
5 u: [& a3 M* H  ^
一、修改工程配置5 `0 [% e# @- Q' [. Q3 |
Step 1:2 Y  ^9 m# ]; i. K1 M
打开OKT3-C开发板开发环境中的Qt软件,按照以下顺序依次点击:【工具→选项→构建和运行→Debuggers→Add】,选择gdb调试插件路径下的aarch64-linux-gnu-gdb,并命名gdb路径:
: A- H/ b8 s  P7 M+ H

$ n' g$ j  ?: z7 u2 G0 L8 A9 b
/home/forlinx/work/lichee/brandy/ARMv8_toolchain/gcc-linaro-aarch64-linux-gnu-4.9-2014.09_linux/bin/aarch64-linux-gnu-gdb(注:此路径是小编自己环境中的路径,大家自己实际环境前的路径会有所差异)# }3 @  r3 ]4 \6 m/ a4 d) s  R
+ n/ P; ?& p0 S4 y8 D9 ?
1 {  A$ B0 S9 x# {& Q! \5 j

- z5 o- J0 G& n3 S. t/ x9 a
[backcolor=rgba(18, 18, 18, 0.5)]​
9 L' L+ R+ `8 ?& r. o. q+ ~! B' {; ~" i( j2 A" V
# |& u" M3 U& o! ?; e

. L0 O$ y) x: y* @, ?* W2 d6 h, ^4 |& ]1 A
编辑切换为居中
1 G/ j) S4 I8 Z9 e1 C' S: H% u
8 k* Q1 w  j' j9 N+ S  E/ {' U9 [8 Q) S% ]& I5 ]- x% D: s
* B6 I) P0 p, V' {' y7 ^

- ~/ m8 J2 d, M! Y2 e) a8 `6 H1 S+ O7 V添加图片注释,不超过 140 字(可选)) R3 G; {# P) O* n2 f2 |& T
+ `. A1 p3 v2 _  q; z
6 ?- w$ K3 w" ^; \1 Z5 ]# h

" q5 r3 E& F4 j5 B5 T
' O. e; n, n; t/ O5 ^
Step 2:$ ?, |# U  }7 P2 z2 k
依次点击【工具→选项→构建和运行】
3 ^8 ?1 f5 G) |5 s' j

8 I9 b9 c- w$ M# Y4 X' R再点击Kit,添加一个新的配置,名称自拟即可,设备类型选择【通用Linux设备】,调试器选择刚刚创建好的Debuggers即可。* S2 M  d8 D; M* i9 U4 t7 s. I8 ~
4 \1 a5 I3 z) F1 B- Y
* P( q; N- {3 i- n: Z" ?. ]" c

6 ?" G; e+ v6 B- s- Z
/ v. Q6 d* b! ~
[backcolor=rgba(18, 18, 18, 0.5)]​
, D$ L; g6 Z( ?5 \4 u/ w* S/ Y: g) p6 G) l6 ~! j

" a2 K- X1 a5 I3 r. t) Z/ K8 B5 _2 o4 i5 i6 s% o
5 A# M. p( N- I. O& d1 _$ {
编辑切换为居中( D4 m$ s  V  U0 L; A) g

8 t9 d6 t, y* t
) M6 O: J8 z7 T
) C! f4 J. {) u4 R4 z9 f6 b( e7 n  |$ J" W- x
添加图片注释,不超过 140 字(可选)  C+ ^, a! o" s- X. Y! |
: v0 f% n) X4 H% K
* C$ A( ^. m+ T- i* H" x' }. c$ ]/ m

( W0 d/ ]4 G. @0 X

$ k- t- s- a: c/ q/ UStep 3:  N4 T" ]# B# J8 g9 f
点击【工具→选项】
  c  `4 L  T9 T5 S% y" s
" i7 K7 L1 b1 Q$ u$ V' k. N
在最左侧选项里选择【设备】,进入【设备】界面后点击Add,添加GenericLinux Device(default for GenericLinux)设备,输入开发板的网络IP以及SSH登录的用户名和密码,再点击Test进行测试,验证连接后配置完成。
- e" M. O% N2 k$ k8 E4 \
9 t7 \3 c' M) S3 a

" ^5 ~) I3 `% T  H  w  B- Z) t
( Q: J% J  r. H9 y0 M1 c

( M. b. D8 m: {4 e+ o
[backcolor=rgba(18, 18, 18, 0.5)]​
4 c% i1 A, ]. g% x
* Q' t9 w$ C- m

+ D4 x' l$ h& p
2 t; f& M0 `  o# F; a, }* z
1 X, E( T( W( j2 {' [( B  I编辑切换为居中& s1 o2 L% L( G! `+ r, I7 [
7 g9 v- I/ z" A3 N0 E( P3 |/ Q+ y

2 P6 V! J8 b! s) ]. U) ^, |
% f1 b( r5 @& D$ `( |2 H) @. E! {3 q+ D3 Y- R
添加图片注释,不超过 140 字(可选)
5 v7 M, \9 `9 w# e2 g: S* b1 L! [8 [
; O+ o5 O( O+ G4 b1 Q2 Z/ N  ^
( s: D5 w) H, ^# W8 F  C" Q' x! w  x* T, O4 |% I
+ M, ?8 S# m% q3 A+ p

2 F8 O5 W3 r1 X& R& ]# `6 s3 X( t' F& c  w9 q: S

1 @3 a$ E0 t$ y, N! y
[backcolor=rgba(18, 18, 18, 0.5)]​
3 s- s6 ]) V' F( ?0 @7 }$ e0 Q/ h4 l3 ^
( P) ~0 V$ `( w

3 b) l3 t* |$ T6 E* g7 F- y) b+ d4 s- t- u5 p6 H& `9 N9 \, d: |5 Z
编辑切换为居中* ^! {7 q- k! h+ T0 V  ?

. A0 c5 B9 T0 v5 B$ Q$ L+ D0 X
% `& m) ]" S5 B. l& y/ ?- c9 l# j: B4 L. B. s7 }7 O

+ C, p1 _+ f5 h  {. s添加图片注释,不超过 140 字(可选)
' x& F0 n( {4 o
# A) w. y" \3 M4 ?, I
$ ^) {: V. R8 H1 z2 M9 k2 f" E% n% Z# [  r' M9 S

& s5 R" `) K3 l到这一步,可能会有朋友要问了——“该如何配置OKT3-C开发板的SSH呢?”小编来为大家简单地介绍一下:
5 o3 J0 Q' X  _' A% G- x3 H

$ O2 u- a5 A- ]( N' B' M6 M* C1.设置账号密码:adduser+账号passwd+密码% I! H& F$ b7 `1 Y' D

: c7 j8 a* s/ r2 q8 W( y4 _( s- i2.修改配置文件:/etc/ssh/sshd_config将#PermitRootLoginprohibit-password 修改为PermitRootLogin yes,保存退出2 ]0 I: W: L+ b7 Z

$ w6 o. E, S6 R) \3.重启 SSHD:输入命令 /etc/init.d/S50sshdrestart ,重启SSHD服务
4 \1 W, L( p  S" C, M
$ l1 T9 x% i4 T5 d
4.设置要修改的IP地址:输入命令:ifconfig eth0 +IP
8 o: \+ t6 Y8 K
, M% J# x8 o8 P1 y5 d- h, A
Step 4:
& [5 V9 Z; \1 k$ {& Y: u* W+ s
指定目标文件路径
$ w0 c3 n7 R1 u. }$ S* K
- q& q$ r$ J; g
在项目这个地方选择的存放路径要在.pro文件中声明。, k* ^$ k6 Q/ H. A0 l1 B* l% F
8 T0 v# D' E. m2 v- _* m- p/ e

' P" G* d8 m7 L3 ]  G1 ]) h7 B# [
6 G( K3 V! J, G# T
2 d2 M# V5 b$ F9 A' f/ i1 ^3 i# B* |
[backcolor=rgba(18, 18, 18, 0.5)]​: K4 J, d$ }; N3 g  g

  N! [  A) l6 L1 _" ~5 K

. r% @! Y' B. R- `. f$ V. X8 u. [3 n9 r
) Z- U7 ]1 j5 D, r" q& w$ l. J
编辑切换为居中
+ w. ?) P7 f; Q* s& B
$ I6 k4 ^4 g- S5 k
3 R$ D6 E" u( ]8 w1 l
' c, Q1 g+ o# {4 A6 Z/ W* f4 |& B: R! y1 i9 G
添加图片注释,不超过 140 字(可选)
1 s4 d( i9 Y3 H9 F; S# |, w% ?: x9 {9 e1 c
# G& l7 Q& X2 e3 Q" E& A( \7 n

+ \1 S9 j( l* K
$ d2 ?0 }; T4 E4 R% C" V2 U$ W

) d4 r! D+ o4 I& c( k
3 f9 i. l9 E4 w+ H0 k( R

8 W, G, J  e. m! b
[backcolor=rgba(18, 18, 18, 0.5)]​
9 d" m. V* f2 L( g9 l5 E7 b$ a5 S
2 D5 E2 C( j3 y4 O; e2 `

4 k% l" |! h8 B: G" S
. @; t# F1 w( K
  x( L! _* c3 q7 B8 g+ p: w/ r8 s编辑切换为居中
( T1 L# A( g* d3 T0 Y! t- v( W' f& A0 [
2 z( c) ]" Y2 w- M' l) N3 G' n
% A: k' @6 i1 Y
# H* u) {0 _, q% x
添加图片注释,不超过 140 字(可选)
9 i" Y- N9 J: @, j  v& V* u9 m" @, A, v! ]" C) P
6 q. F( n$ n" v% y" Z  T% m

. _- {, B1 W1 L; z0 M2 T7 H
* r6 W: A( _, t7 y! `
" _; l) F3 @/ m5 }

0 o* `1 n) v1 e3 X) m
8 d6 K* T3 G1 Z( E
二、成果展示
3 T8 C4 }2 k6 V  {5 w  R
按步骤完成以上操作后,我们一起来看最后的成果吧。我们简单搭建一个界面,作为测试使用。
' d% C" T5 j, w1 F+ X# |, ^

: N! r  }, B! |1 \5 _1 A+ b
  f7 j6 k2 h  J* d8 B5 X6 ?) _- t  X- s2 h% X

5 J0 x# V( d8 L+ P4 k% d; q
[backcolor=rgba(18, 18, 18, 0.5)]​  ~& s! S1 E' a9 _+ O! c# h
# n/ P+ i2 J! D8 Z. `" w! \

/ y( o: N' n8 P0 X% |0 I& T& S- q; y# `; Z" N4 y4 t/ x
. r4 K! ]* `# u. u' N
编辑切换为居中" ~$ M" Q* p- J+ R* U9 k9 `& e
& p; s* i  G- u' y& y3 E/ S7 h

! c5 S$ V2 N1 i4 G% F$ X) v
2 F9 I6 W6 A) ?% k! M; c& i( D+ S5 p7 ^: Y. C; ?4 g
添加图片注释,不超过 140 字(可选)9 I8 v5 r! c, P$ a8 B* S6 s
; V  v& K/ ~& T/ i0 m9 v7 A7 |1 D

# [  X. f: }; d
# @$ Y) C& i6 Y, y' M8 n

1 {% y. ^3 A  O; V6 a! ]屏幕显示:) U, e/ x7 {# F; Y0 ^- u
6 t' u- \* X9 r7 e( L  g3 R

* C/ [3 c4 _. i# ]/ g2 z8 Z0 Z0 @" |- Y7 `# e3 X2 E8 [9 ?: T1 G

9 h/ c3 _; y9 J) w& |& O( e
[backcolor=rgba(18, 18, 18, 0.5)]​
% k: |6 \* g) x. r/ e. s$ q5 j$ `
3 g& I/ y: C- {; `
- I$ @) X: J8 Q4 b/ d4 z/ L

2 A" |# L/ ?+ s
% O- @7 ]& j6 y7 k( ^编辑切换为居中
8 L5 A; B, j5 D: l0 ?( M* W, _2 v1 m0 B; g

7 }  h) J3 D2 X  ~7 P- y1 y# d* [2 ^: G7 b
0 R" k" H6 t3 S; o" ^* |
添加图片注释,不超过 140 字(可选)5 c9 G; {* c! j
5 G! S. Y8 |6 d

5 _" V4 {2 M5 u# e7 u, T: C$ w8 L9 y6 p0 R+ ?7 g! G2 d

6 V3 I/ K1 P& k3 b% O模拟研发人员进行增删:6 M7 F4 T% e! W9 i5 k& U+ `. v& X
. u3 V4 e" S3 i0 H" A, K
" |+ I/ D/ |! g; h. L5 J6 U! Z7 u
/ m7 l4 I! R0 Q1 j) g( n& i
$ r/ J: l0 `: U
[backcolor=rgba(18, 18, 18, 0.5)]​$ g( A# N/ e" A$ `. {0 h
" ^4 I- H$ Z( S
  G8 _$ ^. U* `+ e# r. Q% g
) _2 X- F0 j4 m0 n3 A# P
  i4 ^2 T7 _2 y; N- a- ]
编辑切换为居中- z4 r4 z4 J4 M# d3 g) y# H
* O$ u$ j- ^" r$ b
' t+ `2 ^) S$ H8 b& S+ k

7 L; q  @9 f3 {* `
& {% v$ W+ m" x, m6 ~添加图片注释,不超过 140 字(可选)
- }8 j. P. X( {3 O2 {  z7 w9 D+ Z; b/ Q' f; ?7 `: Z& e  I5 L
1 W: Z2 r* X2 L+ _
7 d+ {. m! l0 e, g# Z6 i
8 `2 X0 f$ X, M# A7 x3 I
屏幕显示:
1 E4 Z* ]2 I# R5 M7 a

& c9 k0 \+ y  [9 K( \9 u% H& e9 b* u; j* y. }" g
4 A4 A; y3 m+ k: j: J
* {" i0 r& P9 T& d0 A
[backcolor=rgba(18, 18, 18, 0.5)]​7 `; P0 V- U/ F) E0 l

. [+ r/ G5 U6 l9 q

2 A( V2 n7 h& ^- M# {% a: K8 D0 q! X# A: B* L
9 `/ [- E, n% N  j* ~+ ?% q1 Q
编辑切换为居中( {/ D1 m& |0 m0 @7 E

6 [5 z" J2 k  D9 k  z
$ r/ Z* f$ u8 r" f
- V5 X4 @, F8 C; L" k# |4 w/ n; \, |9 j
添加图片注释,不超过 140 字(可选)" k* ]4 O- |% k1 a% ^
8 U  S, G$ k7 o+ w
5 O- V& S( x  f0 K$ M0 R0 v
9 i( i) D$ E/ W  u3 P& R

' @4 y6 j7 ~9 U7 t  @- A$ U3 Y6 d  X可以看到,我们在Qt工程中做出的修改已经成功的显示在屏幕上了,中间并不需要繁琐的编译烧写,一键运行就可以看到实时的修改,这大大减小了开发人员的工作量,提高了工作效率。
5 l7 c& h$ O! ~
$ {7 K. ?3 g/ J8 p" L
三、经验分享 % u5 i; v8 p+ L  E: u
在进行Qt远程调试的过程中,小编将自己踩过的一些坑和大家分享一下,希望各位工程师小伙伴可以少走弯路。
7 C& z) X3 s7 S- y2 J
$ `: g7 z" j7 X9 [- V) C, I
1.“连接错误”问题9 N% k; _" w5 I# T. `$ E# F3 L
. l: A" n. o7 A4 @

- k- R7 U) a: f& O. h- F
1 C3 F7 o/ H/ r2 V

% j# r3 C9 K- }0 k+ X, }+ C, D
[backcolor=rgba(18, 18, 18, 0.5)]​. p- X" O* e) x; I

+ X" c; c% T, U

# T( K- x) m8 u/ `3 x" Z1 y* m# X% W5 L% ~* T) E

% v. C9 V. U$ E2 j1 `2 J编辑
8 [; n* u5 r' i( w
$ i+ |( L# A* x. \9 R  E0 A& e7 u2 a! v: Q, K; M
' Z. B2 M  K5 l4 ~
& q# f; ]# y$ s) `( Z/ [0 q
添加图片注释,不超过 140 字(可选)2 F6 M6 W! _" |7 U! ^: d
+ a+ V5 H4 a7 N

, n; M8 h3 e" T* h! q/ ]. U4 y( X3 L" w3 b  T
+ z1 L) P2 v- n: ^; F% i
2.“部署失败”问题
# i" C2 U  C# |! B0 E

. G) t  t1 E1 w! x" B5 N9 Y1 r9 N
3 W6 M$ \, [8 l$ U& H5 b1 p% M/ G6 l8 O3 v' ], y% ~6 ?

% {9 s/ u3 {  H) E2 V4 P& A- [
[backcolor=rgba(18, 18, 18, 0.5)]​% [6 @! e% k0 l7 U6 j' F# c# A
9 V+ x. T5 ]( b* B; z0 M

. R4 i- Q1 }/ r( d8 r- n! ~$ y, s$ K* M- o
9 h/ k  b% F! M/ a- H! U& ?" i( S
编辑切换为居中
* A% s  F( Z$ x+ m
: K: ^) A' Y" W9 D/ A- [, S, Y* T5 r6 H( h% ~$ H+ X6 z/ Y5 G

' K1 T& I. J8 e/ s! p* O# p# J6 ^5 g0 n
添加图片注释,不超过 140 字(可选)
0 E/ d- z0 N2 [2 h  P, }0 A; ?/ V; F& J: s5 S) e- P# V' l' D
. C; F6 k1 W$ X  `$ v( H' |  R

) ^0 A3 s  [! j6 f2 @

* `( {' S& g( ^: u$ z0 g6 Y出现上图提示问题的原因是,在OKT3-C开发板上已经运行了一个程序,此时再运行一个新的程序就会部署失败。这时,只需要在开发板上杀掉该进程,就可以正确运行Qt程序。
. b3 ~$ v' ?* T

/ E- j2 e5 K6 f) R& o9 b1 R$ u! i3 c( ~; J( P9 P8 F
2 ?0 |2 i9 P- z" A9 ^  ^

# G- }% K& X5 e; Z- K8 U7 q
[backcolor=rgba(18, 18, 18, 0.5)]​
2 G8 g# q5 O+ v- ]
, ^& ?) {! u. u" }5 @- O2 [  H

2 |& i1 A( N. ?/ i( i% ~8 f
9 g, d* Q2 w' L$ S: y+ d& F! ^! J+ O* u2 ~* p3 x9 V) [! T
编辑切换为居中
" \& C1 g/ @9 s- a) X7 f4 m' z6 g' f* l
, e7 M4 p* h' m/ N3 ^, E
) G; k; w+ D8 O  h6 l! _; G- U) s
% b. O( a, s  n9 U9 w
添加图片注释,不超过 140 字(可选)
) S5 ]0 m% g! m2 f3 W8 B+ Y1 Z
  g1 s5 X2 o3 i/ E# C! {3 {; x$ x) \) g0 _( E( V

" X7 \( G9 H% E' A' q9 z, N
$ b# @9 y$ _2 u( O
四、总结
, l( L- i/ e$ G; C

0 E2 y7 @/ V: b7 }/ }! r2 @$ B! r: s6 j. o/ F6 ~2 h* f1 L* m; N

7 o# B/ e: X6 W& |+ ^

) }3 z+ q# i6 y$ C! |. {" h
+ b0 u8 H9 p% N  d3 S0 O7 g- f4 _' _& g0 C' w, v- I
2 C' k- D; \/ u7 Q) \3 w1 H$ Q: C
总结一下——通过配置虚拟机中的Qt应用程序、虚拟机网络IP,通过gdb调试和ssh服务,实现在虚拟机中编写Qt程序后,再点击绿色三角形的运行按钮,,即可在开发板中安装运行对应的Qt程序。$ @2 J/ |7 a0 W& e2 G( ~$ s
) B; p5 V8 r& Y2 V6 s- }
. J$ E1 a/ e. P1 O; t& @/ y

; F( _6 c% F% K, y  P- `, l) k) c

1 y$ g0 h+ b) s0 H' P" a# ?: }以上就是小编为大家整理的快速进行Qt远程调试的过程以及一些问题产生的原因,希望能够对大家有帮助。, @& }4 I/ i' ]: N

5 A/ Q3 C$ r; p3 `! K  V! r
" s# A+ w1 f$ \5 G
  • TA的每日心情
    慵懒
    2022-1-21 15:20
  • 签到天数: 1 天

    [LV.1]初来乍到

    推荐
    发表于 2022-9-30 17:37 | 只看该作者
    用这种命令进行远程调试,一个命令符用一行打完不要换行否则就会失效
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-8-19 20:25 , Processed in 0.125000 second(s), 24 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表