ubuntu 编译qtopia模拟环境
2007-05-25 16:24
176 查看
前一段时间编译了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
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
相关文章推荐
- Ubuntu 12.04 编译Android 4.0.3 的环境配置
- ubuntu内核编译环境说明
- Ubuntu 上 hi3531 交叉编译环境 arm-hisiv100nptl-linux 搭建过程
- ubuntu下编译安装php5.6.32,完成php环境搭建
- Ubuntu 15.10 搭建 全志A20 Android系统编译环境
- [转]ubuntu下交叉编译环境构建(arm-linux-gcc-3.4.1.tar.bz2 )
- 虚拟机中在Ubuntu14.04下搭建QT交叉编译环境--2014/8/14
- Ubuntu安装mips平台交叉编译环境
- ubuntu12 环境下编译freerdp
- Ubuntu 12.04下PHP环境的搭建(LAMP)--非编译
- Ubuntu 16.04 LTS, 64bit,cuda 8, Caffe环境配置编译和安装
- 如何搭建ubuntu的全志A33编译环境 - linux环境完成,android有问题
- linux学习笔记(二):ubuntu下搭建C/C++编译环境
- 在 Ubuntu 8.10环境下编译 Android 2.2
- ubuntu环境编译pcl错误解决方案
- Ubuntu14.04LTS(64)编译安装lamp环境
- ubuntu 环境下配置 gcc 编译 Object-c
- open JDk 7编译 环境ubuntu 14 jdk8
- Ubuntu环境下 Android平台源码的下载及编译
- 嵌入式Linux实战篇--交叉编译环境的建立(基于ubuntu 8.10)