• 11018阅读
  • 4回复

使用ARM开发详细步骤/关于QT/E安装,编译,以及执行 [复制链接]

上一主题 下一主题
离线keisuo
 

只看楼主 倒序阅读 楼主  发表于: 2007-05-28
— 本帖被 XChinux 从 Qt Programming 移动到本区(2008-07-18) —
一、编译QTE库
一般,如果你要做Qt/Embedded的开发,最好把Qt/Embedded编译成为两个版本,一个是主机版,一个是目标版。
1. 下载QTE
在获得Qt/Embeded的源码(free版的源码可在www.trolltech.com下载)之后,将其分别解压到两个目录(比如:/qte/qte-3.3.4-host/和:/qte/qte-3.3.4-target/)
2. 编译主机版本
1) export环境变量
export QTDIR=/qte/qte-3.3.4-host
export QTEDIR=$QTDIR
export PATH=$QTDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
2) 运行./configure
./configure -depths 4,8,16 -no-ipv6 -no-cups -no-pch -qvfb
3) 编译Qt/Embedded函数库
make sub-src
4) 编译Qt/Embedded辅助开发工具
cd tools;make
这一步就会成一个可以在主机环境(x86)下运行的uic指令,放在$QTDIR/bin目录中。
5) 如果qvfb编译不成功,可以从http://www.minigui.com/download/devtool.shtml下载一个
3. 编译目标版本
1) export环境变量
export QTDIR=/qte/qte-3.3.4-target
export QTEDIR=$QTDIR
export PATH=$QTDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
2) 运行./configure
cd $QTDIR
./configure -depths 4,8,16 -no-ipv6 -no-cups -no-pch -qvfb -embedded arm -qt-gif -thread -qt-mouse-linuxtp
3) 复制uic命令
cp /qte/qte-3.3.5-host/bin/uic /qte/qte-3.3.4-target/bin/
4) 为了支持触摸屏(和IPAQ兼容的)
在src/embedded/qmouselinuxtp_qws.h中加入
#define QWS_MOUSE_IPAQ
#define QWS_MOUSE_IPAQ_RAW
#define QT_QWS_IPAQ
5) 编译Qt/Embedded函数库
make sub-src
二、制定文件系统
原先QTE用的是2..X,,所以要将新的QTE库考入/qt/lib
三、制定内核
make config;
make dep
make clean
make boot
生成Image文件
四、烧写
1. 烧写BootLoader
2. 烧写Kernel
3. 烧写文件系统
五、编写测试程序
1. 编译QTE下的例子 hello 上传到目标机
2. 在目标机跑QTE程序,编写一个脚本运行
3. 编写pointercal文件
文件内容为
4523 0 -1575429 0 6184 -2356536 65536
4. 将上面三个文件上传到目标机/tmp目录下

在目标机跑QTE程序,编写一个脚本运行
#! /bin/sh
export HOME=/tmp
export QTDIR=/qt
export QPEDIR=/qt
export QWS_MOUSE_PROTO=LinuxTP:/dev/h3600_tsraw
export LD_LIBRARY_PATH=/qt/lib:$LD_LIBRARY_PATH
./hello -qws


//////////////
【原创】关于QT/E安装,编译,以及执行

一, QT/E的安装。
在本机中安装了包括QT4.0.1(WINDOWS版本)以及QT/E2。3。7(LINUX版本)。
QT/E我安装在我的虚拟机中。因为QT/E2.3.7的版本问题,其适宜在REDHAT9。0版本(或更低版本)下安装,否则安装不成功。

QT/E安装过程复杂,具体细节可以参考下面这篇文章。《Qt/Embedded开发环境建立的过程》
此文在网上可搜索到。

本机下虚拟机中QT/E安装路径为:/home/wangxl/QTE/qt-2.3.7
QT/X11安装路径为:/home/wangxl/QTE/qt-2.3.2
Tmake安装路径为:/home/wangxl/QTE/Tmake-1.8

QT/E下载地址为:ftp://ftp.rediris.es/mirror/Qt/source/
Tmake下载地址为:ftp://ftp.trolltech.com/freebies/tmake/

二.QT与QT/E以及QT3与QT4之间的区别
相对来说QT与QT/E的语法一样,所不同之处在库类大小或者库类函数大小不同而已。QT/E相对于QT来说,不具有少数类或者少数函数的支持。具体QT/E是否包含某个类或者包含某个类中的函数,我的方法是在QT/E安装目录下的include文件夹中去查找。
QT3和QT4有很多不同点,主要不同也是在于库类以及支持函数有所变化,比如,有些QT3中的函数,在QT4中被其他函数名所代替,因此很多QT4程序在QT3环境下无法执行。QT/E2.3.7与QT3基本相同,除了我前面提到的QT与QT/E的差别。

三.QT/E编译与执行。
1.在QT/E编译与执行前要先设置TMAKE与QT/E LIB环境,具体方法如下:
[root@localhost tmake-1.8]# export TMAKEDIR=$PWD
[root@localhost tmake-1.8]# export TMAKEPATH=$TMAKEDIR/lib/qws/linux-x86-g++
[root@localhost tmake-1.8]# export PATH=$TMAKEDIR/bin:$PATH
[root@localhost qt-2.3.7]# export QTDIR=$PWD
[root@localhost qt-2.3.7]#export QTEDIR=$QTDIR
[root@localhost qt-2.3.7]#export PATH=$QTDIR/bin:$PATH
[root@localhost qt-2.3.7]#export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH

2.如果你是用DESIGNER工具设计的界面(后面有讲),则要将*.ui文件转换成*.h文件和*.cpp文件。转换方法如下:
uic –o test.h test.ui
uic –o test.cpp –i test.h test.ui

3.编写一个*.pro文件(用来生成Makefile文件用),该文件格式比较固定。
如test.pro文件基本格式如下(以test.cpp ,test.h main.cpp为例子):
EMPLATE = app
CONFIG += qt warn_on release
HEADERS = test.h
SOURCES = test.cpp \
main.cpp
TARGET = hello
DEPENDPATH=/home/wangxl/QTE/qt-2.3.7/include
REQUIRES=

4.生成Makefile文件
方法为:tmake –o Makefile test.pro
5 编译生成可执行文件
make

6 打开QVFB
进入安装QT/X11所在目录, 在BIN目录下执行程序qvfb。
有时候需要修改qvfb执行时的deptb参数才能够执行QT/E程序。可以直接在QVFB打开窗口的Configure彩单项中选择,也可以用如下命令执行QVFB。
./qvfb –width ** -height ** -depth **
7.执行QT/E程序
如 。/TEST
在QVFB程序打开的窗口中将出现TEST程序的显示 。

四.Qt/e与QT/X11
安装QT/E的同时还需要安装QT/X11与Tmake,Tmake 是用来帮助生成Makefile文件的。安装QT/X11主要是向QT/E提供designer工具和qvfb工具的。
Designer可以用来设计图形界面,最后生成.ui文件,可通过UIC命令转换为相应的C++文件。
QVFB模拟帧缓冲,提供QT/E程序的显示平台。

五.QT/E 程序ARM 板上执行
在我虚拟机上可以执行的QT/E程序不能在ARM板上执行,需要对QT/E进行重新编译,并需要设置响对于ARM板系统的编译环境,具体方法可以参考我另外的一文《QT/E开发记录》

六.QT/E支持中文显示问题
QT/E需要字体转换才能显示中文。具体方法可以参考我另外的一文《QT/E开发记录》
但是由于缺少UNICODE的QPF文件的字体,中文字大小不均匀问题尚没解决。

七 QT/E的一些参考资料:
http://www.qtcn.org/bbs/index.php QT中文论坛
http://www.qiliang.net/qt/ (关于QT3的类,以及类函数可以在这寻找)
提供QT3编程最好书籍的电子版本《C++ GUI Programming with QT 3》(本机)
关于QT4可以参考QT ASSISTNAT(本机中),另外QT ASSISTNAT中也可以查找QT3的类及库等。
[ 此贴被XChinux在2008-07-18 16:35重新编辑 ]
离线草也
只看该作者 1楼 发表于: 2010-12-15
将 qt-everywhere-opensource-src-4.6.2.tar.gz 压缩包解压为3份,分别编译 PC ,嵌入式 x86 和 arm 三个版本。
我看的文章说是要把QT分别编译成三个版本,我觉得两个就可以了,一个PC的(虚拟机上跑),一个ARM的(板子上跑)。不知道这三个版本有什么作用么?
离线play_play
只看该作者 2楼 发表于: 2010-12-22
编译X86版是为了得到QVFB,仿真framebuffer。不用,直接上板跑,也是可以的。
离线alice86
只看该作者 3楼 发表于: 2011-04-12
        对于1楼“将 qt-everywhere-opensource-src-4.6.2.tar.gz 压缩包解压为3份,分别编译 PC ,嵌入式 x86 和 arm 三个版本。”意思是不是说,这么一个压缩包可以代替以前的qt-x11-opensource-src-4.6.2.tar.bz  和 qt-embedded-linux-opensource-src-4.6.2.tar.bz 这类的安装包?
      
离线iccome
只看该作者 4楼 发表于: 2011-04-12
标记了
快速回复
限100 字节
 
上一个 下一个