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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
相信各位工程师小伙伴都有这样的体会——当调试自己的Qt程序时,尤其是在调整界面显示和整体布局时,需要频繁地制作镜像烧写到核心板里来测试Qt程序是否完善,这样的操作既费时又费力。
8 N* f. N4 _7 g* }+ E0 k$ x5 i

' h: S- M% Z9 {& s9 K  v那么,有没有更快捷的方法呢?今天小编就用OKT3-C开发板来为大家介绍如何快速进行Qt远程调试。话不多说,我们直接切入正题。) r$ ]4 |0 h7 N4 }, |
* X" V/ y% v; u/ x+ k6 ~1 H. ?
一、修改工程配置+ P6 B) {- A4 A
Step 1:: w% P" F( Y4 }" E# u
打开OKT3-C开发板开发环境中的Qt软件,按照以下顺序依次点击:【工具→选项→构建和运行→Debuggers→Add】,选择gdb调试插件路径下的aarch64-linux-gnu-gdb,并命名gdb路径:# y; E( ?  A6 m

" Y5 U# Y' p" }* ?
/home/forlinx/work/lichee/brandy/ARMv8_toolchain/gcc-linaro-aarch64-linux-gnu-4.9-2014.09_linux/bin/aarch64-linux-gnu-gdb(注:此路径是小编自己环境中的路径,大家自己实际环境前的路径会有所差异)& [, M4 M  _0 |3 Z+ _7 I. L1 `" v* M

) v- `. l5 o" ^$ S' P7 \1 h- i( ^, v: D

: l3 Y/ y3 I" F( X- N: X$ B
[backcolor=rgba(18, 18, 18, 0.5)]​. n' o  p# W$ i! g- U
' U0 g1 [  S' V/ X- K3 Y

+ u8 R6 b8 D0 ^7 e" B! y* I! x# f
5 x7 V# ~. c* J3 J: ^' F) t  p9 r9 E; i5 Q5 v" B
编辑切换为居中
  M% c" w. Q6 u* X
' ^) w& }* t6 ?' E8 ^% X  k, t8 L8 C% u
, e8 U4 W1 r; ^9 A3 w7 a6 }

; C& u1 m6 }! G) p! u添加图片注释,不超过 140 字(可选). s9 d# k6 x/ c) z; X- g$ j: C5 d
- k5 z0 K/ I3 q' X

% c! J$ |1 x! x; B7 |/ x. n) ~7 L8 z) H3 Y) v7 O* h

% m) s: L5 q/ iStep 2:. p0 G$ t" ?7 w, g
依次点击【工具→选项→构建和运行】! ?5 {* z" r: g; y: j, l2 _% Z
0 j4 N1 a7 }- u
再点击Kit,添加一个新的配置,名称自拟即可,设备类型选择【通用Linux设备】,调试器选择刚刚创建好的Debuggers即可。0 f  R1 X2 q2 s1 E
- G- P8 l  y3 y0 a- e2 A+ f
0 }/ ?) V1 o2 i" q

# g; n$ m/ @+ i6 a  `% H% M: o

; ]9 I7 h" c4 ]) a! C
[backcolor=rgba(18, 18, 18, 0.5)]​! l( Z* X' K6 Z7 X$ I
, C6 K$ |2 g! c& }

) u; L9 W$ C+ O+ [3 j% q
6 _5 k7 d# I& o  \& x
! P  O* M* D; x' \1 ?9 z. s( q编辑切换为居中
3 C2 [) X$ q* ~. v8 e  z
' g7 H9 N  ?! K/ ^! l+ g4 [- O% d8 @" o: _2 `: h8 C, i
3 n) c  p" }3 N

* U- P4 W! W# O2 h4 L. A) y8 I' O添加图片注释,不超过 140 字(可选)6 |4 B* D" ?, n# t
, B# r, Q. b$ n" u1 m
. N2 }' O( Q) V0 o, w+ f: D/ u! J
4 b  Q- q5 x! A9 d5 K. E

! k6 I8 F/ |. @3 c' kStep 3:
! N* V" N8 F: M+ k6 m; P) o% y
点击【工具→选项】
2 ~9 k5 |2 P3 {8 S1 ]2 Z1 W5 S

4 X' @9 K% h- ?# ]3 d在最左侧选项里选择【设备】,进入【设备】界面后点击Add,添加GenericLinux Device(default for GenericLinux)设备,输入开发板的网络IP以及SSH登录的用户名和密码,再点击Test进行测试,验证连接后配置完成。' [' a5 ]. s: i  t9 U

# J8 a; q; G" H+ X4 z
; j3 F7 s/ G4 S/ L1 o; k1 e. |# w. c8 m1 l

$ q9 Z1 f' H; l% q8 J3 w: ]
[backcolor=rgba(18, 18, 18, 0.5)]​
9 h, t+ U8 \& z* X$ m
/ ^6 ?2 N2 H7 S. K' h8 d: C

; ^& n4 q1 Y0 ^* H# Q( o
/ z+ U1 i) R; L- }* }; \9 x+ u
5 b9 V. E9 V" }2 M2 l; k编辑切换为居中
% _& z+ T3 T3 |5 }4 W2 f4 f0 d$ A: Q8 `4 \3 R8 e& W; |
  v* D4 ~! }9 H) N3 c) V" J! p
: ~$ @9 Z6 X  u  K6 J% y

" k3 B3 d' X0 W. r+ W4 _: U% Y- i1 V添加图片注释,不超过 140 字(可选)& i, L' x. v( m5 A

9 v6 ^. K3 _3 m0 u8 `' ?0 r& N4 S7 A9 U" J: z- F

; o3 P- c7 L- H* x

3 m+ B5 q, W4 @( G+ }2 [1 |' Z6 w7 S6 c4 a2 {" u- j3 C6 Z

+ U: @5 n8 I) R
  N9 p  P3 [8 m2 o* f8 F
[backcolor=rgba(18, 18, 18, 0.5)]​
- o5 d3 a8 k, z4 I, U$ e1 p) R- y

) F/ `4 y7 u; u; ~# C+ d7 l& e2 B2 S+ E6 C0 `: S+ c5 g' G! V
. K1 I% a8 y, a5 ?
编辑切换为居中* n% @6 `/ H; `: A

4 S- Y' }8 c5 ?* D, f* N) h6 ]$ `; s- b% F6 o- r1 U; M: |. U

$ f$ N6 r# U: O! Q  t& d( e
# N! Q5 _- d% X6 {添加图片注释,不超过 140 字(可选)
8 N" ^% C+ W5 Z+ W8 l0 [3 @5 [/ B9 I3 W' X0 ]
$ J8 J0 }, X" ]9 d, U: T9 @) `
9 B7 i; h7 o8 B& L, d
+ @* M, U! O' m! x
到这一步,可能会有朋友要问了——“该如何配置OKT3-C开发板的SSH呢?”小编来为大家简单地介绍一下:
" o4 y8 q( @1 ^2 L, W5 Q  g* _
3 r' n9 ]# ~% s7 k
1.设置账号密码:adduser+账号passwd+密码
/ S: V! a0 ?8 v
; t( k0 }% D' I8 N6 U5 a! N
2.修改配置文件:/etc/ssh/sshd_config将#PermitRootLoginprohibit-password 修改为PermitRootLogin yes,保存退出+ v0 i, r' v# F
+ t2 U. g2 y- r4 X6 G3 D9 f
3.重启 SSHD:输入命令 /etc/init.d/S50sshdrestart ,重启SSHD服务
9 K: j/ Y1 N6 Q

% `- M. @' M6 |9 G) t4.设置要修改的IP地址:输入命令:ifconfig eth0 +IP
$ G, K& z& i. T" {8 X

, R: {$ j" y! V) \' o% HStep 4:
; m8 ^& Y9 }0 c3 ~- ~* Q
指定目标文件路径2 O0 P, I2 I5 I( D. a

$ e) k8 ^% }4 ?  D$ I2 v& m' A. x在项目这个地方选择的存放路径要在.pro文件中声明。
" c* `) e( F2 A
! h4 p  N$ F  E+ M

. ^! g0 C$ x" ^; h! n
- }: S* R  u6 E5 `7 f
4 Z0 o1 I$ G( p. c) X
[backcolor=rgba(18, 18, 18, 0.5)]​8 _* d( ~& ~, s6 {+ ^
: O3 [  |- Z% P0 o2 w: w1 X
* K7 S6 k' Y( r8 ^1 j! k

% Q# J- Z/ T( |1 F- O/ @3 `( A% R/ K: Q8 W% j; d- p: Z1 W: o! B
编辑切换为居中  a  a; h7 ^( z. {+ V0 R- P( {' W

2 S- h) A( g  I
+ O) G% }( H6 |7 z: X/ g0 B
6 X! @; L& m! L8 _+ `. h5 T! V+ W1 d: W/ B6 @4 d
添加图片注释,不超过 140 字(可选)
/ [  _( k. \& c2 b, o
. j) Z& O+ f3 y4 C( j  k! K: z! t# K" J5 f; E/ w9 ~! d

3 g" A3 _' m/ w) P* T

/ o4 g- g% G# n7 T' `) f6 i
4 F/ s; B9 n/ m! |. g
  B5 Q7 O# ]9 \  H+ K3 X
2 ]& c4 Y# {' u' J8 Y
[backcolor=rgba(18, 18, 18, 0.5)]​
* h: _; X( s( u" i8 v( Z
* [, ~1 O6 x6 }9 J" ^: h- c

6 y3 A" l8 A1 `- e' V; V8 P3 }0 G' U  l, a( a1 m. S

3 r# p: @) m7 k编辑切换为居中
3 `1 v" S6 a7 H- h6 s( j
6 E# q' R) u+ [$ `
# X# P( r. Y9 p' a! O
" p5 z4 [9 a  y' @& W& D7 k6 J( |, G& M! _* o, n/ v' m& P1 h( q
添加图片注释,不超过 140 字(可选)
3 g* U4 E# O9 G, ~! s# Q/ Y/ T0 N3 k! h' p# [* m0 H; _5 S
  H- `" _6 y& G  N

& q* @- e- f8 ~) y0 I+ j
* ^; {1 P2 K% G0 Z% e. a9 i
1 c. u4 Z: S  X5 |
5 `$ @* Q- R  _$ T0 d# m' Q, e& J
" T1 }# e; U) q7 b
二、成果展示
) m  y  |- n$ e( @
按步骤完成以上操作后,我们一起来看最后的成果吧。我们简单搭建一个界面,作为测试使用。
6 f, _8 n: }7 w' u8 T+ y1 C, y# |
& C. }1 E6 Z$ E

% l- B  R2 z& T' X% M' J: U* b! f; z% X% H3 L
& N+ K% [$ ]) \: N; A) v0 @
[backcolor=rgba(18, 18, 18, 0.5)]​; L3 e# s* f+ L5 {" D& m; P4 j# G
' i( U6 T# T' N/ T8 j7 l' X

; K& T) [( m1 X! f7 ^5 s0 M7 q- C' X+ `2 G+ a, q
/ }* K. g2 l. s$ `$ l2 Z) S
编辑切换为居中& C/ B. _4 @4 P) C6 {! Z6 Y4 {
6 R) ], _# b( F# k
* B8 @  O7 X0 Z. q0 t8 S
( S' j1 K' v; t( j: A+ J! U- I* _& B
2 ^4 g; H* [( l' H9 k# L1 _& s  Z
添加图片注释,不超过 140 字(可选)* A* d- T% |( p9 M# ]8 a7 w) a! U
, f- p3 @$ C- D5 e. x
* d( ?3 F/ G* r9 _

/ x; c- {- h2 I; \( t: Q
3 Q" V4 g8 x! {7 n  s, Y7 r! ~5 J
屏幕显示:
5 r8 [  O  G: U1 J+ Z4 {' J0 C
2 ]; c, e: l' |* `6 g+ g5 y
/ u3 {7 M+ k0 ?/ p9 G* m
, K) [, H. f$ d, o  ]% ?

( h& x4 _% _; i
[backcolor=rgba(18, 18, 18, 0.5)]​! D) V. G7 J5 N( @8 d2 s

% }: [( B, S9 f6 D
  v4 F  k8 i+ J% F- B
* c; V, o3 \* \  P* W
% [* _6 M4 p' y( K$ {2 E4 x
编辑切换为居中
, @4 T7 a8 f2 c! T* l+ ?; r& @  }2 A# K' F, M, Y

2 f3 A+ ?, }- ~$ M1 ~, t& o) O
% m+ k$ ]' ]2 ], F# a# y
4 v8 V0 a. Q6 l) h# s% X+ M添加图片注释,不超过 140 字(可选)
2 q$ E1 X* n& v1 C! R/ x" y: J3 q
, H9 H, L, H# `  G# s, i
8 X4 c5 h" c0 S0 z. b

; q0 n$ H7 }, @( k# ]模拟研发人员进行增删:  J4 C9 F7 _9 [/ G) U1 {; Z

9 T) V$ b: y* z. s# y$ Y2 p; C% b  t/ n: R6 D

3 u9 w! ]7 ?/ i$ [6 c4 U- A+ o

5 K' }8 W7 c+ K- n
[backcolor=rgba(18, 18, 18, 0.5)]​
' r+ y5 }. q/ N! p6 ]3 i& b
8 ^5 l4 W/ v$ r' [5 F; M

) Q1 j- X$ O4 U, w" d! w( F9 l$ p6 T2 ], ^5 u& B. L

! H! J; M$ A( B* s9 m3 }& S编辑切换为居中
. O' G$ j. ?3 i0 h( |7 N% A/ H4 g# @/ ]4 h/ J6 u3 b& E2 j
' O  Y0 K# t+ {0 k  G

, {- ~$ p, m3 R! A( v) ^
  a. e5 Q1 N+ i0 N添加图片注释,不超过 140 字(可选)
9 p% V; u! j) d/ u! o9 u* f8 M; n! L! \" V. i2 H* X

6 X/ y5 E/ z" j- C; @& ^- n, ?
& W& {) u6 L7 W$ Y+ Y# l
" o0 t* R" b& N4 \8 L: K
屏幕显示:5 ?" b6 T' ?8 p; s. m

' r/ ?+ b9 ^( ^% q6 ~' I. L) @& V% L/ i& J* G
5 D! r) Q+ w9 U( q4 X( l

$ K% k2 Q3 V* }8 |2 M8 W& Z
[backcolor=rgba(18, 18, 18, 0.5)]​, m1 d/ R* L( t
& C, [2 k( u( x% W# i0 q

9 i6 ?* {/ [' E3 i) Q4 c8 ~$ m; z4 t% i1 D9 q) V, w
) D3 B8 [! [8 y% Z0 j
编辑切换为居中) H+ P5 l$ j2 g, L

. `3 w) v. \8 X( B5 d! d) Z% t7 p: |/ I3 w+ J' h" M1 O8 j- r9 J1 [
8 P, v1 b9 z, R+ X: h9 `

- a% T+ u% o5 N( Q; \( R添加图片注释,不超过 140 字(可选)
, _- _- v3 [# v9 O! d$ r3 Q. I+ u7 M( R+ D

7 t0 [3 Y$ W7 y( Y5 h& F4 d: t; N* i; q- L) D/ v9 {

# p$ b, A7 @$ s8 d5 d# f" I- p- f可以看到,我们在Qt工程中做出的修改已经成功的显示在屏幕上了,中间并不需要繁琐的编译烧写,一键运行就可以看到实时的修改,这大大减小了开发人员的工作量,提高了工作效率。4 b4 d" Z) f8 n7 [! P. C9 ?

% p0 }. }7 K0 m& X$ Q" B8 Q三、经验分享 ! a* e( r7 v% C1 W# ]/ ~% A* q/ M
在进行Qt远程调试的过程中,小编将自己踩过的一些坑和大家分享一下,希望各位工程师小伙伴可以少走弯路。( ~: z; Z% V" R6 o# U
) ^' W7 p3 j2 C
1.“连接错误”问题( ~7 `. f  N8 T0 r: B) Q/ b4 I
5 F5 O: x2 ]& j) ^; h- X- R; A* P- k

  s/ z& k7 r2 `6 K' `$ U- ^0 w$ Q0 k1 z

  j+ x  Y# z& v' u/ n4 d5 m
[backcolor=rgba(18, 18, 18, 0.5)]​
2 `- Q  Q; [3 t1 c" ^
' L" }/ a& f! F  J5 {
# @* f' A9 i9 n& X
1 m0 m! E/ @" o! j. l

. {9 S+ [* F/ k编辑1 e# L  ~# s8 P" U* f0 O7 M9 D
7 B0 H- m; K% X3 n1 @
- s2 E) G* u- Z; d# F: J* V
( t* s: S7 e4 Z1 [' d
9 E  F1 D, c* F4 {( I
添加图片注释,不超过 140 字(可选)
, j  @* q* Y: R5 h7 T$ d
! @/ L3 Z% M, x- J
' g! p3 W7 s7 Z) `, ^& Q8 `% x  M5 C5 |1 ?3 ]9 l5 ?5 h
" _# j' {3 G. \+ ^. v
2.“部署失败”问题! Q  N5 |6 T/ x; a: u$ Y
- a& `+ i7 b2 L7 D9 d

  ]& ~: ~5 i, ^7 J" J, N/ C+ f) A) K8 q* B: s
9 Y. ]& f6 k& @/ [
[backcolor=rgba(18, 18, 18, 0.5)]​- [. {/ Y# g1 `+ t, u, ?

0 ^( O1 s  O1 [

/ N8 P& J* p) J7 {4 Q  R" o6 o; ^( x% ^! d

3 w1 k* u# t- t! M编辑切换为居中
& V# E) Q* U7 o- q. n' N' {$ d7 e# r) J4 X7 P1 p2 R2 L" S
# C. B# v. S, V  X3 {5 O' k
4 ]. d2 x1 f/ |& R. U( |

3 ^0 _0 j0 P* Y4 U5 ~. q+ i添加图片注释,不超过 140 字(可选)
) g1 w# q5 t; w2 r* N7 y- U+ Z* E8 o- `/ w! A
& ~) u/ ]% Z  |5 {+ }
. g" j6 R: j. x' ~8 X: V( T* j
/ N$ _/ W( {4 C" c* b) U
出现上图提示问题的原因是,在OKT3-C开发板上已经运行了一个程序,此时再运行一个新的程序就会部署失败。这时,只需要在开发板上杀掉该进程,就可以正确运行Qt程序。  F! K2 s* Z- N' Q, o8 u/ h

* [5 o! b) V; ~1 f  o' m8 H, O" K- ~/ F; ?, N  ?8 Y# k

& h. ?2 L5 C  U9 z' u

8 ]. I) @0 ^5 H0 S
[backcolor=rgba(18, 18, 18, 0.5)]​
! `- p. Q: ~2 u! i3 ]2 d
& I% [9 a8 v8 s3 T0 A
8 V4 M0 T# Y* C( Y6 I

, b7 i8 h+ q+ g2 O) B3 h4 ^
* ]4 E% Q6 H$ T0 l  ^, F编辑切换为居中
+ j# V* ]" ^) ]& j8 y
* e: ^0 n( k, S7 ]
* \3 ]) \* {3 {( h. P8 ?0 ]6 h0 @7 A7 J7 x( K" a

; d* D8 C( i4 O8 W4 H; h0 Z添加图片注释,不超过 140 字(可选)
8 ^5 N, U6 F& d! x& w" [: g+ H  D  V

, E. w8 R1 F3 F  V& ], M6 F7 ]  w+ b6 C" ?9 n" l

& R" U/ ?* I8 B) j四、总结
4 N4 p; M- `3 P1 T1 `$ O

7 v  Y# u: T$ M9 j" G0 E$ S/ |& I
3 t# s4 Y0 }3 ^; Z' y
- T! ]' z& H( z! ?

7 S" x- D2 N& C( M8 c6 S
+ [, Y$ F( L" V  ?3 Z3 D# z' _8 D3 a- L

7 a' G! S" H* l, N* D" K% f, i) }总结一下——通过配置虚拟机中的Qt应用程序、虚拟机网络IP,通过gdb调试和ssh服务,实现在虚拟机中编写Qt程序后,再点击绿色三角形的运行按钮,,即可在开发板中安装运行对应的Qt程序。& a3 o5 s4 k3 O1 G

. e& G9 `4 j; E. ?- l% X
) n$ n- v- @7 i; F2 b" d  y4 D* {9 z8 d: R" M) m
/ q" Q5 q( q- K5 _; @  F
以上就是小编为大家整理的快速进行Qt远程调试的过程以及一些问题产生的原因,希望能够对大家有帮助。1 J7 A: E4 K, y0 I
/ x( G# w2 J$ s; {3 B! K
# f1 W# s% U6 r
  • TA的每日心情
    慵懒
    2022-1-21 15:20
  • 签到天数: 1 天

    [LV.1]初来乍到

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

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-11-23 18:52 , Processed in 0.156250 second(s), 25 queries , Gzip On.

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

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

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