Build Qtopia for x86
时间:2006-09-04 来源:aaronwong
Build Qtopia for x86
一、相关工具以及软件包:
Ø Cross-compiler Toolchains 提供arm交叉编译工具
Ø e2fsprogs-1.35.tar.gz 用于编译生成libuuid库
Ø tmake-1.11.tar.gz 生成makefile
Ø qt-embedded-2.3.7.tar.gz Qt/Embedded
Ø qt-x11-2.3.2.tar.gz Qt/X11,提供uic,qvfb
Ø qtopia-free-1.7.0.tar.gz Qtopia
将这些工具和软件包保存到/qte_x86/目录,并解压缩。注意Toolchains已保存到/opt/xscalev1/bin。
二、安装tmake:
tmake用于交叉编译生成qt应用程序的makefile, 也可用于生成qt的本地makefile,区别在于设置TMAKEPATH路径的不同,一个用于arm,一个用于x86。
注意:tmake机器上本来就有,但是需要1.11以上版本,可用tmake –v查看版本信息。
设置tmake环境变量:
# export PATH=/qte_arm/tmake-1.11/bin:$PATH
# export TMAKEDIR=/qte_arm/tmake-1.11
# export TMAKEPATH=/qte_arm/tmake-1.11/lib/qws/linux-arm-g++
实际操作成功后才发现TMAKEPATH中用的是lib/qws/linux-arm-g++,不知道为什么能成功。按理说应该使用lib/qws/linux-x86-g++。
三、安装e2fsprogs:
# cd e2fsprogs
# ./configure –enable-elf-shlibs
# make
# make install lib/uuid 或 # cd lib/uuid # make install
其中lib目录下的libuuid.so.1.2、libuuid.so.1、libuuid.so即是我们要编译的库,必须检查是否出现以及相应格式,否则说明编译不成功。
将e2fsprogs-1.35/lib/目录下uuid的文件夹复制到qtopia/include下。
将e2fsprogs-1.35/lib/中的libuuid.a复制到/qtopia/lib下。
否则会出现找不到uuid.h和cannot find -lqtopia的问题,这是因为RedHat 9中缺少uuid.h文件。
//有人说在装e2fsprogs之前需要设置链接器路径(不用):
// export LD_LIBRARY_PATH=$QTDIR/lib:$QPEDIR/lib:$LD_LIBRARY_PATH
四、安装Qt/Embedded:
Qt/E已经解压到/qte_x86/qte-2.3.7,Qtopia解压到/qte_x86/qtopia-1.7.0。
# cd /qte_x86/qte-2.3.7
# export QPEDIR=../qtopia-1.7.0
# export QTDIR=$PWD
# export PATH=$PWD/bin:$PATH
# export LD_LIBRARY_PATH=$PWD/lib:$LD_LIBRARY_PATH
# cp $QPEDIR/src/qt/qconfig-qpe.h src/tools/
# ./configure –qconfig qpe –qvfb –depths 4,8,16,32 -shared –no-xft
# make 或者# make sub-src
//注意必须采用选项-depths 4,8,16,32,因为PC的显示器属性往往调为32位色彩象素深度,若只选16,则在使用qvfb仿真时会发生问题,可能需要调节PC显示属性。
五、安装Qt/X11:
编译qt-x11-2.3.2是为了得到uic和qvfb,uic在编译qtopia时要用到,因此要用gcc/g++编译。Qvfb则用于在没有帧缓冲结构的x86处理器系统和X窗口环境下,模拟出虚拟的帧缓冲,以便用于在PC上进行qtopia应用开发时的仿真。
需要注意的是选择安装的Qt for X11的版本必须比Qt/Embedded的版本旧。
# cd /qte_x86/qt-2.3.2
# export QTDIR=$PWD
# export PATH=$PWD/bin:$PATH
# export LD_LIBRARY_PATH=$PWD/lib:$LD_LIBRARY_PATH
# ./configure –no-xft
# make
# make –C tools/qvfb 或者# cd tools/qvfb # make
# cp tools/qvfb/qvfb bin //将上一步生成的可执行文件qvfb拷到bin目录下。
# cp bin/uic $QTEDIR/bin
六、Build Qtopia:
# cp /qte_x86/e2fsprogs/lib/libuuid.a /qte_x86/qtopia-1.7.0/lib
# cp –av /qte_x86/e2fsprogs/lib/uuid /qte_x86/qtopia-1.7.0/include
# export QTDIR=$QTEDIR
# export PATH=$PWD/bin:$PATH
# export LD_LIBRARY_PATH=$PWD/lib:$LD_LIBRARY_PATH
# cd src
# ../configure
# make
注意,这里configure后面不带参数时,默认选项为configure –platform linux-generic-g++,不能写成configure –platform linux-x86-g++,否则编译时出错。不知道为什么?
[参考资料]:
① Qtopia软件包的相关文档;
② Linux下Qt/Embedded、Qt/X11、Qtopia 安装方法,http://blog.xjtu.edu.cn/user3/6415/archives/2006/68008.shtml
[声明]本站文章除特别注明外,均为作者原创,如需转载请注明作者与出处。
[提示]您可以通过这个链接引用这篇文章:http://blog.chinaunix.net/u/23458/showart.php?id=164419