`
hulunberbus
  • 浏览: 855312 次
文章分类
社区版块
存档分类
最新评论

fc4下成功编译qt-x11-2.3.2 qt-embedded-2.3.10 qtopia-2.1.1 tmake-1.13

 
阅读更多
FC4默认安装的GCC4.0不可以用,而是要安装GCC3.2即这两个包:compat-gcc-32(CD3)&compat-gcc-32-c++ (CD4)


编译qt-embedded-2.3.7.tar.gz
需要制定CPATH PATH
LD_LIBRARY_PATH 到gcc-3.3的目录下
/usr/lib/gcc-lib/i386-redhat-linux/3.2.3/
CPATH=/usr/lib/gcc-lib/i386-redhat-linux/3.2.3/include:$CPATH
PATH =/usr/lib/gcc-lib/i386-redhat-linux/3.2.3/include:$PATH
LD_LIBRARY_PATH=/usr/lib/gcc-lib/i386-redhat-linux/3.2.3:$LD_LIBRARY_PATH
#编译qtopia-free-1.7.0.tar.gz
#要替换
#$QPEDIR/configs/linux-generic-g++-shared
#$QPEDIR/configs/linux-generic-g++-shared-debug
#而且要把LINK个gcc 换成g++

编译过程中不能用fc4自带的gcc4.0.0编译要用gcc3.2.3来编译,所以要将配置文件中的g++全部替换为g++32,gcc全部替换为
gcc32,主要替换的有这几个地方
$QTEDIR/configs/linux-x86-g++-shared
$QTEDIR/configs/linux-x86-g++-shared-debug

$TMAKEDIR/lib/qws/linux-x86-g++/tmake.conf
$TMAKEDIR/lib/linux-x86-g++/tmake.conf
$QPEDIR/mkspecs/qws/linux-x86-g++/qmake.conf
还有可能以上目录中的linux-generic-g++里的配置文件替换编译参数就可以了
其实就是根据
QMAKESPEC=和TMAKEPATH=
进行替换

环境变量

TMAKEDIR=/home/arm/tmake-1.13
QT2DIR=/home/arm/qt-x11-2.3.2
QTEDIR=/home/arm/qt-embedded-2.3.10
QPEDIR=/home/arm/qtopia-2.1.1
QT3DIR=/usr/lib/qt-3.3
QTDIR=$QTEDIR
DQTDIR=$QT3DIR
TMAKEPATH=$TMAKEDIR/lib/qws/linux-x86-g++
QMAKESPEC=linux-x86-g++
PATH=$QT2DIR/bin:$QTEDIR/bin:$QPEDIR/bin:$DQTDIR/bin:$QT3DIR/bin:$QTDIR/bin:$TMAKEDIR/bin:$PATH
LD_LIBRARY_PATH=$QT2DIR/lib:$QTEDIR/lib:$QPEDIR/lib:$DQTDIR/lib:$QT3DIR/lib:$QTDIR/lib:$LD_LIBRARY_PATH
export TROLLTECHDIR TMAKEDIE QT2DIR QTEDIR QPEDIR QT3DIR QTDIR DQTDIR TMAKEPATH QMAKESPEC PATH LD_LIBRARY_PATH CPATH
在编译qvfb的时候有可能遇到ld找不到库的问题
改前LIBS=$(SUBLIBS) -L$(QTDIR)/lib -L/usr/X11R6/lib -lqt -lXext -lX11 -lm
改后LIBS=$(SUBLIBS) -L$(QTDIR)/lib -L/usr/X11R6/lib -L$(QTEDIR)/lib -lqt -lXext -lX11 -lm -lqte
只要添加$QTEDIR/lib库就可以了在后面参数中添加-lqte就可以了,这样编译文件没问题
按这样的步骤执行可能不能生成frame buffer后我改用静态连接的办法实现了该功能
1.编译qt-2.3.2
cd $QT2DIR
export TMAKEPATH=$TMAKEDIR/lib/linux-x86-g++
export QTDIR=$QT2DIR
export PATH=$QTDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
./configure -static -no-xft -no-opengl -no-sm
make
mkdir $QTEDIR/bin
cp bin/uic $QTEDIR/bin/
2.编译qvfb
export TMAKEPATH=$TMAKEDIR/lib/linux-g++
export QTDIR=$QT2DIR
export PATH=$QTDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
cd $QTEDIR/tools/qvfb
tmake -o Makefile qvfb.pro
make
mv qvfb $QTEDIR/bin/

3.编译qt/embedded
cd $QTEDIR
cp $QPEDIR/src/qt/qconfig-qpe.h $QTEDIR/src/tools
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
./configure -debug -qconfig qpe -qvfb -depths 4,8,16,32 -keypad-mode -system-jpeg -gif
编译qt/e2.3.7 //原因2.3.7 没有-keypad-mode选项
./configure -debug -qconfig qpe -qvfb -depths 4,8,16,32 -system-jpeg -gif
make sub-src

4.编译qtopia
cd $QPEDIR
export QTDIR=$QTEDIR
export PATH=$QTDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
./configure -debug -platform linux-x86-g++
make
编译qtopia的过程最重要的就是环境的设置问题了,很多情况下就是因为环境设置不正确的问题而导致编译
出错或者是编译成功而运行的时候出错,这些问题都要仔细研究一下她的内部结构才可以解决,不要只是找到网上的一些资料然后就完全按
她的去做,这样成功的可能性不会很大,这些东西还是要靠自己一步步去摸索.
由于qtopia没有提供启动脚本所以用下面的启动脚本来启动qtopia界面
#!/bin/sh
TMAKEDIR=/home/arm/tmake-1.13
QT2DIR=/home/arm/qt-x11-2.3.2
QTEDIR=/home/arm/qt-embedded-2.3.10
QPEDIR=/home/arm/qtopia-2.1.1
QT3DIR=/usr/lib/qt-3.3
QTDIR=$QTEDIR
DQTDIR=$QT3DIR
TMAKEPATH=$TMAKEDIR/lib/qws/linux-generic-g++
QMAKESPEC=linux-g++
PATH=$QT2DIR/bin:$QTEDIR/bin:$QPEDIR/bin:$DQTDIR/bin:$QT3DIR/bin:$QTDIR/bin:$TMAKEDIR/bin:$PATH
LD_LIBRARY_PATH=$QT2DIR/lib:$QTEDIR/lib:$QPEDIR/lib:$DQTDIR/lib:$QT3DIR/lib:$QTDIR/lib:$LD_LIBRARY_PATH
export TROLLTECHDIR TMAKEDIE QT2DIR QTEDIR QPEDIR QT3DIR QTDIR DQTDIR TMAKEPATH QMAKESPEC PATH LD_LIBRARY_PATH
findproc() {
/bin/ps -e | /bin/sed -n -e '//<'$1'/>/ s/^ */([0-9][0-9]*/).*//1/p'
}
killproc() {
pid=`findproc $1`
[ "$pid" != "" ] && kill $pid
}
killall quicklauncher
killall qpe
killall qvfb
[ -x /sbin/fuser ] && ( /sbin/fuser -kn tcp 4242 || /sbin/fuser -kn tcp 4243 )
[ -x /bin/fuser ] && ( /bin/fuser -kn tcp 4242 || /bin/fuser -kn tcp 4243 )
echo "Stopping common sound deamons..."
artsd_pid=`findproc artsd`
[ "$artsd_pid" != "" ] && kill $artsd_pid
esd_pid=`findproc esd`
[ "$esd_pid" != "" ] && kill $esd_pid
echo "Starting qvfb..."
qvfb -width 160 -height 280 &
sleep 3s
echo "Starting Qtopia 2.1.1..."
HOME=/home/arm/qtopia-2.1.1/image/opt/Qtopia/demohome qpe
echo "Restarting killed sound deamons..."
[ "$artsd_pid" != "" ] && artsd &
[ "$esd_pid" != "" ] && esd &
其中pcdev是我开始安装时的环境设置脚本
#!/bin/bash
设置TMAKEDIR、QT2DIR、QTEDIR、QPEDIR、QT3DIR、TMAKEPATH、QMAKESPEC、PATH和LD_LIBRARY_PATH这几个变量就可以了
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics