Qt Embedded基于PC调试嵌入式应用程序
创始人
2024-08-01 08:20:33
0

Qt Embedded基于PC调试嵌入式应用程序是本文要讲解的内容,Qt Embedded通过QT API与Linux I/O 以及Framebuffer直接交互,拥有较高的运行效率,而且整体采用面向对象编程,拥有良好地体系架构和编程模式,

(1)修改/etc/ld.so.conf文件,增加如下内容:

  1. /armsys2440/qt_x86/qt/lib  
  2. /armsys2440/qt_x86/qtopia/lib  
  3. (qt_x86为qt的安装文件夹) 

输入ldconfig将动态函数库加入到高速缓存。

(2)设置环境变量

  1. cd /armsys2440/qt_x86  
  2. export QTDIR=$PWD/qt  
  3. export QPEDIR=$PWD/qtopia  
  4. export TMAKEDIR=$PWD/tmake  
  5. export TMAKEPATH=$TMAKEDIR/lib/qws/linux-generic-g++  
  6. export PATH=$QTDIR/bin:$QPEDIR/bin:$TMAKEDIR/bin:$PATH 

(3)编写编译应用程序

a.生成工程文件

一个应用通常对应一个工程文件,产生工程文件使用progen命令

progen [可选项] [C/C++ 头文件和源文件]

可选项:

-lower 将文件名小写(在windows下比较有用)

-n name 定义工程名(即目标名)

-o file 定义输出文件

-t file 制定模板文件

使用progen产生一个名为hello的工程文件:

  1. progen -t app.t hello.pro 

注意这个工程文件并不完善,还需要手动添加其他文件。

b.创建一个窗体

  1. cd /armsys2440/qt_x86/qt/bin  
  2. ./designer       启动图形编辑器  

在file->new 新建一个widget的模板后放置几个button进行简单测试先,信号与插槽连接暂不实现

将文件存为hello.ui保存到/armsys2440/qt_x86/hello目录下

c.使用uic工具生成窗体类 的头文件和实现文件

  1. uic在/armsys2440/qt_x86/qt/bin目录下  
  2. /armsys2440/qt_x86/qt/bin/uic -o hello.h hello.ui  
  3. /armsys2440/qt_x86/qt/bin/uic -o hello.cpp -impl hello.h hello.ui 

这样就得到了Hello窗体类的头文件和实现文件。(可以根据要实现的具体功能在hello.cpp添加相应代码)

d.编写主函数

  1.  #include "alcohol.h"  
  2.  //#include "qwidget.h"  
  3.  #include  
  4.  int main(int argc,char **argv)  
  5. {  
  6.   QApplication a(argc,argv);  
  7.   Main main;  
  8.   a.setMainWidget(&main);  
  9.   main.show();  
  10.   return a.exec();  

e.编译工程hello.pro文件

hello.pro具体代码为

  1. TEMPLATE = app 
  2. CONFIG   = qt warn_on release  
  3. HEADERS =hello.h  
  4. SOURCES =hello.cpp \  
  5.                    main.cpp  
  6. NTERFACES=  

一定要将INTERFACES= hello.ui 修改为:INTERFACES=

否则会报错:重定义

f.生成makefile文件

(1)编译器是根据Makefile文件内容来进行编译的,所以需要生成Makefile文件。

Qt提供的tmake工具可以帮助我们从一个工程文件(. pro文件)中产生Makefile文件。结合当前例子,要从hello. pro生成一个Makefile文件的做法是:

首先查看环境变量$TMAKEPATH是否指向PC编译器的配置目录,在命令行下输入以下命令

  1. #echo $TMAKEPATH 

如果返回的结果的末尾不是... /qws/linux-generic-g++的字符串,那您需要把环境变量$TMAKEPATH所指的目录设置为指向PC编译器的配置目录。

(2)使用tmake生成Makefile文件:

修改tmake/lib/qws/linux-generic-g++/tmake.conf

将TMAKE_LINK = gcc 和TMAKE_LINK_SHLIB = gcc

分别修改成

  1. TMAKE_LINK = g++和TMAKE_LINK_SHLIB = g++  
  2. --#tmake -o Makefile hello.pro 

(iii)对Makefile做修改,如下:

对于设置LIBS=$(SUBLIBS) -L$(QTDIR)/lib -lm -lqte        注意一定要加上: -lm

g.编译链接整个工程

  1. make 

h.运行应用程序hello

  运行:

  1. #qvfb &            (后台运行qvfb)  
  2. #/armsys2440/qt_x86/hello –qws 

小结:Qt Embedded基于PC调试嵌入式应用程序的内容介绍完了,希望本文对你有所帮助吧。

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...