2008年6月17日 星期二

Ubuntu 安装 Qt/Embedded

系统:Ubuntu 6.06(虚拟机下,主机xp)
codes: pda环境开源代码
tmake-1.11.tar.gz
qt-x11-2.3.2.tar.gz
qt-embedded-2.3.7.tar.gz
qtopia-free-1.7.0.tar.gz

一、gcc/g++-2.95 编译以上四个包,建议使用2.95版,4.0版会编译出问题
#apt-get install gcc-2.95
#apt-get install g++-2.95
#rm /usr/bin/gcc /usr/bin/g++
#ln -s /usr/bin/gcc-2.95 gcc
#ln -s /usr/bin/g++-2.95 g++

二、编译: //使用杭州立宇泰电子有限公司提供的 ARMsys2410开发套件 的Linux用户手册提供脚本文件
1:将代码放入同一个目录,我的为/armsys2410/qt_x86

2:修改/etc/ld.so.conf文件,内容如下:(路径需要与你代码存放路径一致)
/armsys2410/qt_x86/qt/lib
/armsys2410/qt_x86/qtopia/lib
/usr/kerberos/lib
/usr/X11R6/lib
/usr/lib/sane
/usr/lib/mysql

3:新建一个脚本文件buildx86,内容如下:
#!/bin/bash
tar xfvz tmake-1.11.tar.gz
tar xfvz qt-embedded-2.3.7.tar.gz
tar xfvz qtopia-free-1.7.0.tar.gz
tar xfvz qt-x11-2.3.2.tar.gz
mv tmake-1.11 tmake
mv qt-2.3.7/ qt
mv qtopia-free-1.7.0 qtopia
mv qt-2.3.2 qt-x11
cd qt-x11
export QTDIR=$PWD
echo yes | ./configure -static -no-xft -no-opengl -no-sm
make -C src/moc
cp src/moc/moc bin
make -C src
make -C tools/designer
make -C tools/qvfb
cp tools/qvfb/qvfb bin
strip bin/uic bin/moc bin/designer bin/qvfb
cd ..
cp qt-x11/bin/?* qt/bin
rm -fr qt-x11
export QTDIR=$PWD/qt
export QPEDIR=$PWD/qtopia
export TMAKEDIR=$PWD/tmake
export TMAKEPATH=$TMAKEDIR/lib/qws/linux-generic-g++
export PATH=$QTDIR/bin:$QPEDIR/bin:$TMAKEDIR/bin:$PATH
cd qt
make clean
cp ../qtopia/src/qt/qconfig-qpe.h src/tools/
(echo yes; echo yes ) |./configure -platform linux-generic-g++ -qconfig qpe -depths 16,24,32
make -C src
cd ..
cd qtopia/src
./configure -platform linux-generic-g++
make clean
make

执行该脚本, 开始编译。

4:本人编译出现问题:
make -C libraries/qtopia
make[1]: Entering directory `/home/chinazjn/armsys2410/qt_x86/qtopia/src/libraries/qtopia'
/home/chinazjn/armsys2410/qt_x86/qt/bin/uic passwordbase_p.ui -o ./passwordbase_p.h
make[1]: /home/chinazjn/armsys2410/qt_x86/qt/bin/uic:命令未找到
make[1]: *** [passwordbase_p.h] 错误 127
make[1]: Leaving directory `/home/chinazjn/armsys2410/qt_x86/qtopia/src/libraries/qtopia'
make: *** [libraries/qtopia] 错误 2

5:之后经过查找安装相关库支持:
libfreetype6-dev uuid-dev lib.jpeg62-dev libqt3-mt libpam0g-dev libpng12-dev
libbluetooth1-dev libpcsclite-dev pkg-config jpeg-6b
#apt-get install *(库名)* 有些需要查找下 #apt-cache srarch *****

6:之后再运行#./bulidx86 编译,问题依旧存在(安装成功后觉得这些包还是需要的,建议安装)

7:自己分析编译过程发现中间错误提示:
kernel/qt_x11_p.h:66:22: X11/Xlib.h: 没有那个文件或目录
kernel/qt_x11_p.h:71:23: X11 til.h: 没有那个文件或目录
kernel/qt_x11_p.h:72:21: X11/Xos.h: 没有那个文件或目录
kernel/qt_x11_p.h:73:23: X11/Xatom.h: 没有那个文件或目录

这个错是因为没有安装X11的开发包,安装这个开发包:
#apt-get install xlibs-dev

8:再次编译,终于在编译uic了,经过漫长过程,编译成功!

9:运行
首先要设置环境变量, cd 至 /armsys2410/qt_x86
export QTDIR=$PWD/qt
export QPEDIR=$PWD/qtopia
export TMAKEDIR=$PWD/tmake
export TMAKEPATH=$TMAKEDIR/lib/qws/linux-generic-g++
export PATH=$QTDIR/bin:$QPEDIR/bin:$TMAKEDIR/bin:$PATH
# . set-env (我的设置环境变量文件)
#qvfb & 然后执行 qvfb,虚拟出一个 framebuffer 设备供应用程序使用
#qpe 到此可以正常使用了,哈哈

沒有留言: