使用QtCreator作为嵌入式Linux的IDE及可视化调试工具

2019-07-12 15:34发布

Qt Creator For 嵌入式Linux搭建流程

  • 1.安装QtCreator
  • 2.编译Qt for embbed
  • 3.编译gdb及gdbserver
  • 4.使用QtCreator创建C++工程
  • 5.远程调试嵌入式Linux中的程序

1.安装QtCreator

首先从Qt官网下载最新的QtCreator离线安装包,使用目前最新的3.5.1版本。
下载地址:https://www.qt.io/cn/download-open-source/
在ubuntu中安装好后,启动QtCreator。

2.编译Qt for embbed

有人要问,我的项目里不需要使用Qt框架,为何还要编译Qt for embbed?那是因为使用QtCreator创建工程的时候,有两种生成Makefile的方式,一种是qmake一种是cmake。qmake工具是Qt提供的,用起来很方便,而cmake功能强大但用起来很麻烦。通常来说使用qmake即可,所以为了得到我们需要的qmake工具,需要编译对应版本的Qt。需要下载qt-everywhere-opensource-src-4.8.7.tar.gz。
下载地址:http://download.qt.io/official_releases/qt/4.8/4.8.7/
解压后,创建一个my_build.sh的文件,内容为 #./configure -confirm-license -embedded arm -xplatform qws/linux-arm-gnueabi-g++ -release -opensource -fast -stl -no-accessibility -no-scripttools -no-mmx -no-multimedia -no-svg -no-3dnow -no-sse -no-sse2 -no-libmng -no-libtiff -no-multimedia -silent -qt-libpng -qt-libjpeg -make libs -nomake tools -nomake examples -nomake docs -nomake demos -nomake translations -no-nis -no-cups -no-iconv -no-dbus -no-openssl -little-endian -qt-freetype -depths all -qt-kbd-linuxinput -no-glib -qt-zlib -no-phonon -no-phonon-backend -no-webkit -no-javascript-jit -no-sql-db2 -no-sql-ibase -no-sql-oci -no-sql-odbc -no-sql-psql -qt-sql-sqlite -plugin-sql-sqlite -no-sql-sqlite2 -no-sql-mysql -no-sql-tds -no-neon -no-qt3support -no-mouse-linuxtp -no-script -no-largefile -v 注意修改mkspecs/qws下对应文件里的交叉编译工具。
随后 #make #make install 如果一切顺利,则会在/usr/local/Trolltech/QtEmbedded-4.8.7-arm/bin下生成我们需要的qmake工具。

3.编译gdb及gdbserver

前面两点完成以后,就可以使用QtCreator来作为IDE编写和编译C/C++程序了,但最重要的是,我们需要用QtCreator作为可视化调试工具,这时候就需要编译gdb及gdbserver了。
首先在
ftp://ftp.gnu.org/gnu/gdb/
里下载gdb-7.11,下载完成解压后,执行 #./configure --prefix=/usr/gdbserver --target=arm-linux-gnueabihf --with-python --with-sysroot 其中–prefix后是安装gdb和gdbserver的路径。–with-python这句很重要,如果没有的话,在QtCreator中是无法进行远程调试的。之后执行 #make #make install 在安装路径下bin/里就能看到arm-linux-gnueabihf-gdb,此为ubuntu中使用的gdb,而arm板子上还需要一个gdbserver。此时 #cd gdb/gdbserver #./configure --target=arm-linux-gnueabihf --host=arm-linux-gnueabihf #make CC=arm-linux-gnueabihf-gcc 此时会在当前目录生成gdbserver,这就是板子上要用的gdbserver工具。

4.使用QtCreator创建C++工程及远程调试嵌入式Linux中的程序

当前面的准备工作都完成的时候,大功即将告成。这时候只需在安装的QtCreator中配置好gcc和gdbserver,便可以尽情使用它来调试编写程序。
点击QtCreator中的工具->选项,出现以下对话框:
这里写图片描述
点击QtVersions,添加,选择刚才编译好的Qt for embedd中生成的qmake;
点击编译器,添加gcc,选择编译arm板子用的gcc交叉编译工具,点击apply;
再点击Debuggers,新增,选择刚才编译出来的ubuntu使用的gdb;
点击构建套件,选择好设备、编译器、调试器、Qt版本,点击OK。
此时创建新的工程时,选择Non-Qt Project->Plain C++ Application,选择qmake,此时创建的工程便可以使用Qt来编译啦!

5.远程调试嵌入式Linux中的程序

将编译好的gdbserver放在arm板子中,在板子里执行 #/sbin/gdbserver 192.168.77.110:45544 test ip为ubuntu的ip,端口要和QtCreator中设置的端口一致。 此时点击QtCreator中的调试->开始调试->attach to Running debug server…,出现下图:
这里写图片描述 在gdb调试的时候,需要载入嵌入式对应的动态链接库,在这里写图片描述
Addtional Attach Command里设置好对应的 sysroot和solib-search-path,便可以正确载入对应的动态库 在此对话框填写端口号,本地执行文档,工作目录,再点击OK,便可以图形化远程调试arm板子中的程序了!爽!