Chinaunix首页 | 论坛 | 博客
  • 博客访问: 33642
  • 博文数量: 5
  • 博客积分: 1415
  • 博客等级: 上尉
  • 技术积分: 80
  • 用 户 组: 普通用户
  • 注册时间: 2005-09-27 16:59
文章分类

全部博文(5)

文章存档

2010年(1)

2008年(4)

我的朋友
最近访客

分类: 项目管理

2008-03-18 15:14:28

何编译konqueror , 如何移植到 arm 平台
我用的版本为:
konqueror3-embedded-0.2-20060121.tar.bz2
qt-embedded-free-3.3.8.tar.bz2
qt-x11-free-3.3.8.tar.bz2

注意事项:
 
所有编译需要关闭 -fno-rtti 编译选项,否则kongqueror不能正常运行。
可以通过修改qmake.conf 和 Makefile 关闭 -fno-rtti 编译选项

我使用的编译选项如下:
在pc上编译:



#build qt-embedded-3.3.8

qmake_file=mkspecs/qws/linux-x86-g++/qmake.conf

sed "/-fno-rtti/d" < $qmake_file > $qmake_file.$$
mv $qmake_file.$$ $qmake_file

unset QTLIB
unset QTINC
unset QTDIR
export QTDIR=/home/qte3/qt-embedded-free-3.3.8/
export LD_LIBRARY_PATH=$QTDIR/lib:LD_LIBRARY_PATH
echo yes|./configure -prefix /opt/qt-embedded-free-3.3.8 -qt-gfx-qvfb -depths 4,8,16,24,32 -thread -qt-gif

make

make install




------------------------------------------------------------------------------------------------------------



#build qt-x11-3.3.8


unset QTLIB
unset QTINC
unset QTDIR
export QTDIR=/home/qte3/qt-x11-free-3.3.8/
export LD_LIBRARY_PATH=$QTDIR/lib:LD_LIBRARY_PATH
echo yes|./configure -prefix /opt/qt-x11-free-3.3.8 -thread -qt-gif
make

make install




------------------------------------------------------------------------------------------------------------


#build konqueror3-embedded-0.2-20060121-gcc4-x11


export QTDIR=/opt/qt-x11-free-3.3.8
export PATH=$QTDIR/bin:$PATH
export KONDIR_INSTALL_DIR=/opt/konqueror3-embedded-0.2-20060121-gcc4-x11-3.3.8-dist/

./configure --prefix=$KONDIR_INSTALL_DIR \
  --with-qt-dir=$QTDIR/ \
  --with-qt-includes=$QTDIR/include/ \
  --with-qt-libraries=$QTDIR/lib/ \
  --without-ssl \
  --with-javascript=static \

make

make install





------------------------------------------------------------------------------------------------------------


#build konqueror3-embedded-0.2-20060121-gcc4-qte


export QTDIR=/opt/qt-embedded-free-3.3.8
export PATH=$QTDIR/bin:$PATH
export KONDIR_INSTALL_DIR=/opt/konqueror3-embedded-0.2-20060121-gcc4-qte-3.3.8-dist/

./configure --prefix=$KONDIR_INSTALL_DIR \
  --enable-embedded --enable-qt-embedded \
  --with-qt-dir=$QTDIR/ \
  --with-qt-includes=$QTDIR/include/ \
  --with-qt-libraries=$QTDIR/lib/ \
  --without-ssl \
  --with-javascript=static \

for name in `find . -name Makefile`
do
    sed "s/-fno-rtti//g" < $name >$name.$$
    mv $name.$$ $name
done


make
make install



-------------------------------------------------------------------------------------------------------


在 arm 上编译:







#build qt-embedded-3.3.8 for ARM 
926

#(注意:记得将你在PC上编译好的QT/E的目录下的bin文件里的moc和uic二进制文件copy到我们交叉编译QT/E的目录下的bin文件夹里)


patch -p1 <
diff -Nur qt-embedded-free-3.3.8/src/tools/qglobal.h qt-embedded-free-3.3.8-arm/src/tools/qglobal.h
--- qt-embedded-free-3.3.8/src/tools/qglobal.h  2007-02-02 22:01:04.000000000 +0800
+++ ../BUILD/qt-embedded-free-3.3.8/src/tools/qglobal.h 2007-11-26 13:40:40.000000000 +0800
@@ -320,6 +320,11 @@
 #    if __GNUC__ == 3 && __GNUC_MINOR__ >= 4
 #      define Q_NO_PACKED_REFERENCE
 #    endif
+/*########################modify rrrr #######################################33*/
+       # if __GNUC__ == 4 && __GNUC_MINOR__ >= 0
+       # define Q_NO_PACKED_POINTERS
+       # endif
+/*########################modify /rrrr #######################################33*/
 #  endif
 #  if !defined(__EXCEPTIONS)
 #    define Q_NO_EXCEPTIONS
diff -Nur qt-embedded-free-3.3.8/src/tools/qstring.h qt-embedded-free-3.3.8-arm/src/tools/qstring.h
--- qt-embedded-free-3.3.8/src/tools/qstring.h  2007-02-02 22:01:05.000000000 +0800
+++ ../BUILD/qt-embedded-free-3.3.8/src/tools/qstring.h 2007-11-26 13:40:55.000000000 +0800
@@ -195,6 +195,11 @@
     ushort unicode() const { return ucs; }
 #ifdef Q_NO_PACKED_REFERENCE
     ushort &unicode() { return *(&ucs); }
+/*######################################modigy rrrr#####################################*/
+       #elif defined Q_NO_PACKED_POINTERS
+       ushort &unicode() { ushort& tmp = ucs; return tmp; }
+/*######################################modigy /rrrr#####################################*/
+
 #else
     ushort &unicode() { return ucs; }
 #endif
EOF







#BUILD

unset QTLIB
unset QTINC
unset QTDIR
export QTDIR=/home/qte3/qt-embedded-free-3.3.8/
export LD_LIBRARY_PATH=$QTDIR/lib:LD_LIBRARY_PATH
export PATH=$QTDIR/bin:$PATH

if [ ! -d mkspecs/qws/linux-arm-926-g++ ];then
    mkdir mkspecs/qws/linux-arm-926-g++
fi
cp  mkspecs/qws/linux-arm-g++/* mkspecs/qws/linux-arm-926-g++


qmake_file=mkspecs/qws/linux-arm-926-g++
sed "/-fno-rtti/d" < $qmake_file > $qmake_file.$$
mv $qmake_file.$$ $qmake_file

sed "s/arm-linux/arm-926-linux/g" < $qmake_file > $qmake_file.$$
mv $qmake_file.$$ $qmake_file



echo yes|./configure -prefix /opt/qt-embedded-free-3.3.8   -depths 4,8,16,24,32  -thread -qt-gif -xplatform qws/linux-arm-926-g++

make
#make install






------------------------------------------------------------------------------------------------------------


阅读(1863) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2008-12-07 22:33:58

朋友你在编译的时候出现过个错误吗? 我用的所有东西都和你说的一样的 checking for kde-config... not found configure: error: The important program kde-config was not found! Please check whether you installed KDE correctly. 这是配置参数 ./configure --prefix=$KONDIR_INSTALL_DIR --enable-embedded --enable-qt-embedded --with-qt-dir=$QTDIR/ --with-qt-includes=$QTDIR/include/ --with-qt-libraries=$QTDIR/lib/ --without-ssl --with-javascript=static