ubuntu 编译qtopia模拟环境

来源:互联网 发布:angular数据绑 编辑:程序博客网 时间:2024/06/05 17:16

前一段时间编译了qtopia ,操作系统是 ubuntu ,具体步骤如下 : 

QTE版本
qt-x11-2.3.2.tar.gz
tmake-1.13.tar.gz
qt-embedded-2.3.10-free.tar.gz
qtopia-free-source-2.1.1.tar.bz2

在ubuntu编译Qtopia虚拟平台步骤和错误修改方法

编译环境变量设置如qpecompile-host.sh

错误 1 :
编译 qt-2.3.10时

/home/jinying/qtall/qt_qtopia_pc_embedded_270/qtopia_host/qt-2.3.10/include/qwindowsystem_qws.h:237: error: ‘QWSGestureMethod’ has not been declared
make[2]: *** [allmoc.o] Error 1
make[2]: Leaving directory `/home/jinying/qtall/qt_qtopia_pc_embedded_270/qtopia_host/qt-2.3.10/src'
make[1]: *** [src-mt] Error 2
make[1]: Leaving directory `/home/jinying/qtall/qt_qtopia_pc_embedded_270/qtopia_host/qt-2.3.10'
make: *** [src-mt] Error 2

解决方法 :
修改 qt-2.3.10/src/kernel/qwindowsystem_qws.h 文件
在前面增加以下两行

class QWSInputMethod;

class QWSGestureMethod;

错误 2 :

编译qtopia-free-2.1.1时

backend/event.cpp: In static member function ‘static int Event::dayOfWeek(char)’:
backend/event.cpp:419: error: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:
backend/event.cpp:419: note: candidate 1: operator<=(int, int) <built-in>
/home/henryfok/TrollTech/qt-2.3.10/include/qstring.h:312: note: candidate 2: int operator<=(char, QChar)
make[4]: *** [.obj/release-shared/event.o] Error 1
make[4]: Leaving directory `/home/henryfok/TrollTech/qtopia-free-2.1.1/src/libraries/qtopia'
make[3]: *** [all] Error 2
make[3]: Leaving directory `/home/henryfok/TrollTech/qtopia-free-2.1.1/src/libraries/qtopia'
make[2]: *** [sub-libraries-qtopia] Error 2
make[2]: Leaving directory `/home/henryfok/TrollTech/qtopia-free-2.1.1/src'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/home/henryfok/TrollTech/qtopia-free-2.1.1/src'
make: *** [all] Error 2

解决方法 :

修改 qtopia-free-2.1.1/src/libraries/qtopia/backend/event.cpp 文件的第419行
将while ( !( i & day ) && i <= Event::SUN ) 行改为

while ( !static_cast<int>(( i & day ) && i) <= Event::SUN )

继续编译即可

注意要安装 uuid-dev 否则会提示 /usr/bin/ld: cannot find -luuid

编译后每次运行时环境变量设置如下文件setQT-Eenv-host.sh 所示

qpecompile-host.sh 如下 :

#tar qtopia
tar jxf qtopia-free-source-2.1.1.tar.bz2
export QPEDIR=$PWD/qtopia-free-2.1.1

#tar tmake
tar -xzf tmake-1.13.tar.gz
export TMAKEDIR=$PWD/tmake-1.13

#tar qt2
tar -xzf qt-x11-2.3.2.tar.gz
export QT2DIR=$PWD/qt-2.3.2

#tar qte
tar -xzf qt-embedded-2.3.10-free.tar.gz
export QTEDIR=$PWD/qt-2.3.10

#build Qt/X11
cd $QT2DIR
export TMAKEPATH=$TMAKEDIR/lib/linux-g++
export QTDIR=$QT2DIR
export PATH=$QTDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
./configure -no-xft -thread
make
mkdir $QTEDIR/bin
cp bin/uic $QTEDIR/bin

#build qvfb
export TMAKEPATH=$TMAKEDIR/lib/linux-g++
export QTDIR=$QT2DIR
export PATH=$QTDIR/bin:$PATH:$TMAKEDIR/bin
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
cd $QTEDIR/tools/qvfb
$TMAKEDIR/bin/tmake -o Makefile qvfb.pro
make
mv qvfb $QTEDIR/bin

#build libqte
cd $QTEDIR
export TMAKEPATH=$TMAKEDIR/lib/qws/linux-x86-g++
export QTDIR=$QTEDIR
export PATH=$QTDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
cp -f $QPEDIR/src/qt/qconfig-qpe.h src/tools/
./configure -system-jpeg -no-xft -qconfig qpe -qvfb -depths 4,8,16,32 -thread
make sub-src

#build qtopia
cd $QPEDIR
export QTDIR=$QTEDIR
export PATH=$QPEDIR/bin:$PATH
./configure
make

setQT-Eenv-host.sh 如下 :

export TMAKEDIR=$PWD/tmake-1.13
export TMAKEPATH=$TMAKEDIR/lib/qws/linux-x86-g++
#export TMAKEPATH=$TMAKEDIR/lib/qws/linux-arm-g++
export PATH=$TMAKEDIR/bin:$PATH

export QT2DIR=$PWD/qt-2.3.2
export PATH=$QT2DIR/bin:$PATH
export LD_LIBRARY_PATH=$QT2DIR/lib:$LD_LIBRARY_PATH

# the below is compiled with linux-x86-g++,  embedded lib, run on X11
# QT host embedded
export QTEHDIR=$PWD/qt-2.3.10
export PATH=$QTEHDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTEHDIR/lib:$LD_LIBRARY_PATH

#the below is compiled with linux-x86-g++
#QPE host embdedded
export QPEDIR=$PWD/qtopia-free-2.1.1
export QTDIR=$QTEHDIR
export PATH=$QPEDIR/bin:$PATH
export LD_LIBRARY_PATH=$QPEDIR/lib:$LD_LIBRARY_PATH
# the below is compiled with linux-arm-g++  , embedded lib ,run on deveplopBoard
# QT target embedded
#export QTTEDIR=/qt_tools/qte-target-2.3.10
#export PATH=$QTTEDIR/bin:$PATH
#export LD_LIBRARY_PATH=$QTTEDIR/lib:$LD_LIBRARY_PATH
#export QTDIR=$QTTEDIR
#export QTDIR=$QTEHDIR

echo $QTDIR
echo $PATH
echo $LD_LIBRARY_PATH
echo $QPEDIR