• 13402阅读
  • 4回复

qt+qtopia交叉编译过程 [复制链接]

上一主题 下一主题
离线drbigjump
 

只看楼主 倒序阅读 楼主  发表于: 2006-05-13
经过两个星期的工作,qtopia终于在开发本板上跑起来了.在移植的过程中得到了许多人的帮助,特别是版主shiroki,真是大好人,帮我解决了不少问题,在这里表示感谢!

  我的板子是mips的,编译器的版本是3.3.6.开始用的是3.4.2,后来在编译qtopia的时候出现了internal complier error,就换了个3.3.6的.软件的版本分别是qt-x11-2.3.2 qte-2.3.7 qtopia-1.7.0 e2fsprogs-1.35 tmake-1.13 系统是redhat9   2.4.20

  交叉编译过程如下:
tar jxvf e2fsprogs.tar.bz2
tar zxvf tmake-1.13.tar.gz
tar jxvf qte.tar.bz2 (2.3.7)
tar jxvf qtopia.tar.bz2(1.7.0)
tar zxvf qt-x11.tar.gz(2.3.2)
tar zxfv jpegsrc.v6.tar.gz

解压目录名分别命名为qt-x11 qt qtopia tmake jpeg e2fs  
交叉编译器的目录:/home/wjj/buildroot/build_mipsel/staging_dir
export CROSSDIR=/home/wjj/buildroot/build_mipsel/staging_dir

###########--------build jpeg lib-------##############
交叉编译jpegsrc,得到libjpeg
./configure --enable-shared
Make 得到libtools程序,然后再
./configure --enable-shared
修改生成的makefile文件
prefix=../qt
CC=mipsel-linux-gcc
AR=mipsel-linux-ar rc
AR2=mipsel-linux-ranlib
cp jconfig.doc jconfig.h
make
make install
向下面的目录中也拷贝一份libjpeg.so
$CROSSDIR/lib

###########--------build uuid lib-------##############
cd e2fsprogs/lib/uuid
./configure
--prefix=$CROSSDIR
--enable-elf-shlibs
--build=i386-linux
--host=mips-linux
--target=mips-linux
--with-cc=mipsel-linux-gcc
--with-linker=mipsel-linux-ld
make
mkdir $CROSSDIR/include/uuid
cp *.h $CROSSDIR/include/uuid
cp libuuid.* $CROSSDIR/lib

###########--------build qt-X11-------##############
cd qt-x11
export QTDIR=$PWD
echo yes | ./configure -static -no-xft -no-opengl -no-sm
make
mkdir ../qt/bin
cp bin/uic ../qt/bin/
cd ..

#########---------qt.sh--------###################
建一个脚本文件qt.sh 下面是脚本的内容
export QTDIR=$PWD/qt
export QPEDIR=$PWD/qtopia
export TMAKEDIR=$PWD/tmake
export TMAKEPATH=$TMAKEDIR/lib/qws/linux-mips-g++
export PATH=$QTDIR/bin:$QPEDIR/bin:$TMAKEDIR/bin:$PATH
运行脚本:source qt.sh

###########--------build qt/embedded-------##############
cd qt
cp ../qtopia/src/qt/qconfig-qpe.h src/tools/
(echo yes ; echo no) | ./configure -xplatform linux-mips-g++ -qconfig qpe -depths 4,8,16,24,32 -system-jpeg –gif -no-xft -no-opengl
make sub-src
cd ..
ps:编译过程中有几个地方提示出错,后来从/usr/include copy下面几个头文件到qt/include就好了 jconfig.h jmorecfg.h jpeglib.h asm/page.h   为什么找不到系统的头文件呢?

###########--------build qtopia-------##############
cd $QPEDIR/src/libraries/qtopia
cp custom-linux-ipaq-g++.cpp custom-linux-mips-g++.cpp
cp custom-linux-ipaq-g++.h custom-linux-mips-g++.h
cd ../../
./configure -xplatform linux-mips-g++
make
cd ../../
ps:在编译过程中会用到qt/bin下面的moc,系统的bin里面也有这个,两个地方的版本可能不一样,因此要确保在编译过程中用的是qt/bin下面的moc,不然会报错.
########################end##################

qtopia在板子上运行的的时候有个小bug 见http://www.qtcn.org/bbs/read.php?tid=4491

开始以为是qtopia的问题,后来单独运行qt的例子时也有这个问题.并且关掉qt的例子qt背景上也有那个小黑块,知道的dx帮忙说一下解决的方法.谢了先!
[ 此贴被drbigjump在2006-05-13 18:24重新编辑 ]
离线lijasmine
只看该作者 1楼 发表于: 2006-05-14
e2fsprogs.tar.bz2; tmake-1.13.tar.gz; qte.tar.bz2 (2.3.7);qtopia.tar.bz2(1.7.0) ;qt-x11.tar.gz(2.3.2);jpegsrc.v6.tar.gz请问这些安装包在那里下载的?我在http://www.trolltech.com download
页面没有找到。我正在找这些安装包,交叉编译Qte安装在主机上。目标板时买的里面已经有Qt/e和Qtopia包了。还有我想知道e2fsprogs和jpegsrc这两个的作用?
离线octopia
只看该作者 2楼 发表于: 2006-05-15
e2fsprogs.tar.bz2还有jpegsrc.v6.tar.gz这两个文件必须有吗,解压之后是做什么用的呢?
Sometimes I am even higher than a mountain!
离线shiroki

只看该作者 3楼 发表于: 2006-05-15
e2fsprogs.tar.bz2是libuuid.so的源码
jpegsrc.v6.tar.gz是libjpeg的源码

这两个库是qte依赖的, 所以如果要交叉编译qte必须先有交叉编译好的这两个包

http://doc.trolltech.com/qtopia2.1/html/qtopia-dependencies.html
--
shiro is White
ki is tree
http://www.cuteqt.com
论坛 http://www.cuteqt.com/bbs
博客 http://www.cuteqt.com/blog
博客镜像: http://sites.cuteqt.com/cuteqt
Linux/Qt/嵌入式讨论群 http://qun.qq.com/air/5699823
离线za5862
只看该作者 4楼 发表于: 2010-09-06
回 3楼(shiroki) 的帖子
你好,麻烦请教一下,我按照上面build jpeg lib的步骤先解压了tar zxfv jpegsrc.v6.tar.gz然后进入jpep-6执行./configure --enable-shared然后make,没有得到libtools程序,继续按步骤编译得不到libjpeg.so ,请教一下
快速回复
限100 字节
 
上一个 下一个