分享

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

 lao_o 2009-11-28
最新版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./下载

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

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多