开源中文网

您的位置: 首页 > Qt开发 > 正文

最新版qtE4.5.2成功移植编译及运行

来源:  作者:

qtE4.5.2编译 

首先介绍下QTE的运行情况 

我们进行QTE的开发需要编译两个运行环境的QTE,一个是运行在pc机下的,另一个是运行在arm板上。运行在PC机上直接用GCC编译就行了,运行在ARM板上要用到CROSS-COMPILE,这里用到cross-3.3.2,安装就不多说了。其实,arm板上的QTE主要包括两个方面,一个是链接库,另外就是你编译的应用软件。这两个部分都要用到交叉编译器编译。 

现在我们开始编译arm板上的版本,其实编译QTE说白了就是解决出现的问题 

1)下载qt -embeddbed,现在最新版本是4.5.2,可以从http://www.qtsoftware.com/下载 

2)解压 #tar zxvf qt-embedded-linux-opensource-src-4.5.2.tar.gz 
#mv qt-embedded-linux-opensource-src-4.5.2 qte4.5 
3)配置选项#cd qte4.5 
#./configure -release -shared -fast -no-largefile -qt-sql-sqlite -no-qt3support -no-xmlpatterns -no-mmx -no-3dnow -no-sse -no-sse2 -no-svg -no-webkit -qt-zlib -qt-gif -qt-libtiff -qt-libpng -qt-libmng -qt-libjpeg -make libs -nomake tools -nomake examples -nomake docs -nomake demo -no-nis -no-cups -no-iconv -no-dbus -no-openssl -xplatform qws/linux-arm-g++ -embedded arm -little-endian -qt-freetype -depths 16,18 -qt-gfx-linuxfb -no-gfx-transformed -no-gfx-multiscreen -no-gfx-vnc -no-gfx-qvfb -qt-kbd-usb -no-glib -qt-mouse-tslib -I/home/wbwen/qte4.5/include -L/home/wbwen/qte4.5/lib 

注:如需其他配置可另行添加,但要注意电脑上是不是支持 

4)在进行配置时可能会遇到的问题 
A)在安装automake工具的前提下,执行myconfigure脚本,执行到验证tslib一步时,通常会报错,大意是验证tslib失败。提示说要修改/makespec/qws/linux 
解决):下载tslib1.3,解压 
使用./autogen.sh生成configure文件,并运行 
./configure --host=arm-linux --target=arm-linux --prefix=$PWD/build --enable-inputapi=yes 
并设置PLUGIN_DIR=tslib-1.3/plugins(tslib解压路径下的plugins路径,此环境变量很重要,没有话编译时会报“only absolute run-path ...”的错误) 

vi ~/qte4.5/mkspecs/qws/linux-arm-g++/qmake.conf 
加入 
QMAKE_INCDIR=~/qte4.5/tslib-1.3/build 
QMAKE_LIBDIR=~/qte4.5/tslib-1.3/build 
B)若automake工具没有安装,则执行 
sudo apt-get install aclocal automake autoheader autoconf 
5)#make 
在make时会出现stdlib.h错误 
解决):把/usr/include/bits/stdlib.h换成/usr/include/stdlib.h 
注意备份/bits/stdlib.h 

6)#make install 

这种配置编译时间只要半个多小时 

7)进行qmake路径配置 
#export PATH=$PATH:/usr/local/Trolltech/QtEmbedded-4.5.2-arm/bin 
注:在编译时默认安装目录为该目录 
8)编译几个例子 
#cd ~/examples 
#qmake xxx.pro 
#make 
可得到几个可执行文件 
注:可不用设置LD_LIBRARY_PATH,qmake 会自动指向/usr/local/Trolltech/QtEmbedded-4.5.2-arm/lib 

9)制作根文件系统yaffs 
首先应有个可用的yaffs文件系统包 
a)在该文件系统建立目录/usr/local/Trolltech/QtEmbedded-4.5.2-arm/ ,然后在该目录下建立 ~/bin ~/lib 目录(命令不写了) 
b)将/usr/local/Trolltech/QtEmbedded-4.5.2-arm/lib里的所用文件复制于上述的~/lib,将上面编译得到的例子拷入~/bin 
c)将 /usr/local/arm/3.3.2/arm-linux/lib/里的librt* 文件拷入根文件系统里的/lib目录 

d)制作根文件系统 
#mkyaffsimage 根文件系统目录 root_qte.bin 

10)烧写进目标板,只有根文件系统在该板能用,应该都可以的 

11)调试 
不可设置变量就可以运行 

#xxxx -qws 

12)后续问题 
--在运行时钟例子时是发现指针不能转动 

希望大家有什么关于qt移植的问题提出来,大家一起讨论。 

Tags:最新版
关于开源中文网 - 联系我们 - 广告服务 - 网站地图 - 版权声明