Qt Embedded基于PC调试嵌入式应用程序是本文要讲解的内容,Qt Embedded通过QT API与Linux I/O 以及Framebuffer直接交互,拥有较高的运行效率,而且整体采用面向对象编程,拥有良好地体系架构和编程模式,
(1)修改/etc/ld.so.conf文件,增加如下内容:
- /armsys2440/qt_x86/qt/lib
- /armsys2440/qt_x86/qtopia/lib
- (qt_x86为qt的安装文件夹)
输入ldconfig将动态函数库加入到高速缓存。
(2)设置环境变量
- cd /armsys2440/qt_x86
- export QTDIR=$PWD/qt
- export QPEDIR=$PWD/qtopia
- export TMAKEDIR=$PWD/tmake
- export TMAKEPATH=$TMAKEDIR/lib/qws/linux-generic-g++
- 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的工程文件:
- progen -t app.t hello.pro
注意这个工程文件并不完善,还需要手动添加其他文件。
b.创建一个窗体
- cd /armsys2440/qt_x86/qt/bin
- ./designer 启动图形编辑器
在file->new 新建一个widget的模板后放置几个button进行简单测试先,信号与插槽连接暂不实现
将文件存为hello.ui保存到/armsys2440/qt_x86/hello目录下
c.使用uic工具生成窗体类 的头文件和实现文件
- uic在/armsys2440/qt_x86/qt/bin目录下
- /armsys2440/qt_x86/qt/bin/uic -o hello.h hello.ui
- /armsys2440/qt_x86/qt/bin/uic -o hello.cpp -impl hello.h hello.ui
这样就得到了Hello窗体类的头文件和实现文件。(可以根据要实现的具体功能在hello.cpp添加相应代码)
d.编写主函数
- #include "alcohol.h"
- //#include "qwidget.h"
- #include <qapplication.h>
- int main(int argc,char **argv)
- {
- QApplication a(argc,argv);
- Main main;
- a.setMainWidget(&main);
- main.show();
- return a.exec();
- }
e.编译工程hello.pro文件
hello.pro具体代码为
- TEMPLATE = app
- CONFIG = qt warn_on release
- HEADERS =hello.h
- SOURCES =hello.cpp \
- main.cpp
- NTERFACES=
一定要将INTERFACES= hello.ui 修改为:INTERFACES=
否则会报错:重定义
f.生成makefile文件
(1)编译器是根据Makefile文件内容来进行编译的,所以需要生成Makefile文件。
Qt提供的tmake工具可以帮助我们从一个工程文件(. pro文件)中产生Makefile文件。结合当前例子,要从hello. pro生成一个Makefile文件的做法是:
首先查看环境变量$TMAKEPATH是否指向PC编译器的配置目录,在命令行下输入以下命令
- #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
分别修改成
- TMAKE_LINK = g++和TMAKE_LINK_SHLIB = g++
- --#tmake -o Makefile hello.pro
(iii)对Makefile做修改,如下:
对于设置LIBS=$(SUBLIBS) -L$(QTDIR)/lib -lm -lqte 注意一定要加上: -lm
g.编译链接整个工程
- make
h.运行应用程序hello
运行:
- #qvfb & (后台运行qvfb)
- #/armsys2440/qt_x86/hello –qws
小结:Qt Embedded基于PC调试嵌入式应用程序的内容介绍完了,希望本文对你有所帮助吧。