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
exportQTDIR=$PWD/qt
exportQPEDIR=$PWD/qtopia
exportTMAKEDIR=$PWD/tmake
exportTMAKEPATH=$TMAKEDIR/lib/qws/linux-generic-g++
exportPATH=$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
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=qtwarn_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调试嵌入式应用程序的内容介绍完了,希望本文对你有所帮助吧。
【编辑推荐】
【责任编辑:李程站 TEL:(010)68476606】
点赞 0