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./下载
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移植的问题提出来,大家一起讨论。
|