linux系统 qt调试,Linux下Qt Creator远程调试(redhat5+mini6410)
當我們開發嵌入式系統下的Qt應用程序時,有時候不能在虛擬機上進行調試,這時候我們需要通過遠程調試的方式在PC上調試嵌入式系統下的Qt應用程序。這樣就產生了交叉調試。
本文環境介紹:
虛擬機:vmware8.0.4 build-744019
Linux操作系統:Red Hat Enterprise Linux5
交叉編譯工具:arm-linux-gcc
目標板:mini6410(友善提供),已移植Qt4.7
Qt Creator版本:qt creator-1.3.0
Qt版本:qt-everywhere-opensource-src-4.7.0
一、設置NFS共享
交叉調試的前提需要設置NFS共享,在上位機下配置NFS服務,建立NFS共享目錄。
1、PC機下開啟NFS服務
[root@localhost home]# service nfs restart
2、設置共享目錄
[root@localhost home]# vim /etc/exports
打開exports文件后,添加如下內容:
/home/NFS?????? *(rw,sync,no_root_squash)
保存退出。
說明一下,上面的含義為:/home/NFS 表示我的共享目錄,* 表示任意的開發板的ip地址,rw表示可讀寫,sync表示同步,no_root_squash表示有root權限。
接下來使用如下命令使共享目錄生效:
[root@localhost home]# exportfs -ra
不信看看:
[root@localhost home]# exportfs -v
是不是出現了:/home/NFS?????? (rw,wdelay,no_root_squash,no_subtree_check),這樣就設置成功了共享目錄。
3、交叉編譯gdb(前提你的系統已經安裝了交叉編譯工具鏈)
下載一個gdb源碼包(我的為:gdb-7.0a.tar.bz2),下載地址:在虛擬機下解壓并編譯:
[root@localhost toolchain]# tar jxvf gdb-7.0a.tar.bz2
解壓后進入其目錄,然后
[root@localhost gdb-7.0]# ./configure --target=arm-linux -prefix=/opt/gdb7.0_arm
-prefix=/opt/toolchain表示安裝在/opt/gdb7.0_arm這個目錄下。
[root@localhost gdb-7.0]# make
[root@localhost gdb-7.0]# make install
這樣就安裝成功了,瞧瞧/opt/gdb7.0_arm中有bin、share、lib目錄,進入bin目錄可以發現發現:
修改環境變量:
在/etc/profile內添加新生成的bin文件的路徑,如
export PATH=/opt/gdb7.0_arm/bin:$PATH
并設置生效:source /etc/profile
4.交叉編譯gdbserver
進入/opt/gdb-7.0/gdb/目錄下,可以看到有個gdbserver目錄,進入這個目錄,交叉編譯和安裝:
$./configure --target=arm-linux --host=arm-linux
$make
這樣gdbserver就安裝成功了,在此目錄下會生成可執行文件gdbserver,將其拷貝至共享目錄/home/NFS。
5.拷貝libthread庫至共享目錄
交叉編譯工具鏈里有一個動態鏈接庫文件libthread_db-1.0.so,將其拷貝到/home/NFS/lib中(先在共享目錄下建立lib目錄),建立符號鏈接:
$ln -s libthread_db-1.0.so libthread_db.so
$ln -s libthread_db-1.0.so libthread_db.so.1
在目標板開始mount之前先將此庫文件加入目標板/etc/profile的庫文件搜索路徑LD_LIBRARY_PATH上。
三、目標板上mount共享目錄
1.連接好開發板,設置好網絡(開發板IP:192.168.1.88,Linux系統IP :192.168.1.114,具體地址根據實際情況設定)
2.目標板下執行:
$mount -t nfs -o intr,nolock,rsize=1024,wsize=1024 192.168.1.114:/home/NFS /mnt
mount上后,你可以在目標板/mnt目錄下看到共享文件夾NFS,里面的內容和Linux系統上的一樣。
四、交叉調試
1.配置工程
打開Linux系統下的Qt Creator,進入Tools->options->Debugger,進行如圖所示的配置。
將要調試的工程(比如說hello)拷貝到共享目錄NFS下,在Qt Creator內打開,在左側projects欄選擇Build configuration for hello為arm模式的Debug(我的是qt_4.7_arm Debug),Edit Build Configuration進行同樣配置。
2.啟用gdbserver
將gdbserver拷貝至目標板/usr/sbin/目錄下,進入/mnt/hello/目錄,執行
$gdbserver 192.168.1.114:6666 hello -qws &
在終端顯示運行結果為
$Process hello created; pid = 797
Listening on port 6666
6666為通信端口號,自己設,大于1024便可,其中pid每個人都會有所不同。
3.開始交叉調試
在Qt Creator菜單欄點擊Debug->Start Debugging->Start and Attach to Remote Application,出現如圖所示界面,按圖進行配置。
192.168.1.88是目標板的IP地址,端口號6666,arm為i386架構。點擊OK,終端出現
Remote debugging from host 192.168.1.114,表示可進行交叉調試了。
總結
以上是生活随笔為你收集整理的linux系统 qt调试,Linux下Qt Creator远程调试(redhat5+mini6410)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle报错-1,[Oracle报错
- 下一篇: linux ap程序,ubuntu(li