mkdir /opt/QtEmbedded-4.4.3-i386
export QTOPIA_DEPOT_PATH=$PWD/qt-extended-4.4.3
export QPEDIR=/opt/QtEmbedded-4.4.3-i386/
export LC_ALL=\ export LC_TIME=\ export LC_MONETARY=\ export LC_ADDRESS=\ export LC_TELEPHONE=\ export LC_NAME=\ export LC_MEASUREMENT=\ export LC_IDENTIFICATION=\
export LC_NUMERIC=\ export LC_PAPER=\ export LC_CTYPE=\ export LANG=\ export LANGUAGE=\
cd $QPEDIR
echo yes | $QTOPIA_DEPOT_PATH/configure -ui-type mobile -release -clean -sound-system oss -build-qt -no-sxe -no-ssl -no-v4l2 -no-vpn -no-phonon -no-libamr -dynamic-rotation -mediaengines cruxus -remove-mediaengine gstreamer,helix -pictureflow -remove-module bluetooth,drm -no-dbus -no-dbusipc -add-displaysize 240x320 -extra-qt-embedded-config \-no-dbus -qt-gfx-transformed -qt-gfx-linuxfb\ -extra-qt-config \
2>&1 | tee ./qtopiaconfig.log
bin/qbuild 2>&1 | tee ./qtopiamake.log
bin/qbuild image
对友善之臂自带脚本的修改主要有:
① 按网文说法更改了语言设置,不过似无必要(未详细考证),编译输出的提示中会有乱码,好在不影响结果。
② 将-sound-system参数值由alsa改为oss,否则会爆出alsa disabled错误。
③ 更改了编译输出目录为/opt/QtEmbedded-4.4.3-i386,方便以后使用。
2>&1 | tee ./qtopia???.log语句作用是将编译过程中的输出信息同时输出到屏幕和log 文件中。
错误:
In file included from ../../include/QtGui/private/qcups_p.h:1:0,
from
/home/gaosheng/x86-qt-extended-4.4.3/qt-extended-4.4.3/qtopiacore/qt/src/gui/painting/qpdf.cpp:42:
/home/gaosheng/x86-qt-extended-4.4.3/qt-extended-4.4.3/qtopiacore/qt/src/gui/painting/qcups_p.h:74:11: error: 'ppd_file_t' does not name a type
解决:
在
~/x86-qt-extended-4.4.3/qt-extended-4.4.3/qtopiacore/qt/src/gui/painting/qcups_p.h中加入#include
#ifndef QT_NO_CUPS #include
#include
编译成功后,还要从~/qtsdk-2010.05/qt/bin目录下拷贝qvfb文件到/opt/QtEmbedded-4.4.3-i386/sdk/qtopiacore/host/bin目录下。
7. 编译arm-qtopia-4.4.3 cd ~
tar xvzf arm-qt-extended-4.4.3-20101105.tgz cd arm-qt-extended-4.4.3
arm-qtopia-4.4.3的编译安装比较简单,友善之臂提供的编译安装脚本基本是可用的,笔者只是改了开头几个命令:
#!/bin/bash
mkdir /opt/QtEmbedded-4.4.3-arm/
export QTOPIA_DEPOT_PATH=$PWD/qt-extended-4.4.3
export QPEDIR=/opt/QtEmbedded-4.4.3-arm/
export PATH=/opt/FriendlyARM/mini6410/linux/arm-gcc-4.4.1/bin/:$PATH
export LC_CTYPE=\
从最后一行起,再往后与友善之臂原版的build-all脚本就完全一样了,修改目的还是将编译好的程序放在/opt/QtEmbedded-4.4.3-arm/目录下,方便以后使用。
发生问题及解决办法似上:
vi
~/arm-qt-extended-4.4.3/qt-extended-4.4.3/qtopiacore/qt/src/gui/painting/qcups_p.h
加#include
四、测试编译结果
启动~/qtsdk-2010.05/qt/bin目录下的qfvb程序,然后进入/usr/local/Trolltech/QtEmbedded-4.6.1-i386/demos目录,任选一个子目录下的可执行文件,加-qws参数在命令行下执行,如执行成功则说明x86-qte编译成功。
测试的例子:
cd ~/qtsdk-2010.05/qt/bin ./qvfb &
/usr/local/Trolltech/QtEmbedded-4.6.1-i386/demos/affine/affine -qws
再如:
cd ~/qtsdk-2010.05/qt/bin ./qvfb &
/usr/local/Trolltech/QtEmbedded-4.6.1-i386/demos/books/books -qws
要测试x86-qtopia,进入/opt/QtEmbedded-4.4.3-i386目录,执行:
./bin/runqtopia
将显示出一个诺基亚手机界面。