- 积分
- 0
贡献0
飞刀0 FD
注册时间2016-3-26
在线时间0 小时
扫一扫,手机访问本帖
|
我用的是飞凌公司的TE2 2440II的开发板,拿到开发板时就按照随光盘自带的是用户手册上的说明按部就班的进行操作,由于刚开始接触Linux和QT,编译qtopia-free-2.2.0走了很多弯路,竟然反复进行了N多次,费时1个多月,才将qtopia-free-2.2.0编译通过。
刚开始是完全按照手册上的一步一步的进行,但编译支持qtopia-free-2.2.0的库文件就遇到了很大的麻烦,总是编译报错,后来发现,手册上的有写步骤存在笔误,最后是编译qtopia-free-2.2.0所需的库文件(手册上的armlib和arminclude)从飞凌公司获取的已编译完成的,直接拿过来用的,编译成功了。期间在飞凌的论坛上和QQ群里发了不少帖子求助,自己也查阅了相关的资料,还好,最终还是自己编译成功了。下面把我的编译方法写出来,以备忘,也希望能给准备做这些事情的朋友提供一个思路。
我的开发环境:
【硬件】:当时我是在研华的工控机上编译的,CPU:P4 2.4 内存:512M 硬盘:60G(配置不是很高,编译时间比较长)。
【操作系统】:RedHat 9 完全安装。
【交叉编译器】:cross-2.95.3
【用户】:root
1.编译前的一些准备工作:
1.1 建立目录
1. 建立编译qtopia-free-2.2.0所需要的目录
编译qtopia-free-2.2.0所需要的目录有:
/usr/local/arm (交叉编译器cross-2.95.3所在目录)
/root/yizhi (编译qtopia-free-2.2.0的总目录)
/root/yizhi/armlib (编译软件得到qtopia所需要的库文件全部放在这里)
/root/yizhi/include (编译软件得到qtopia所需要的头文件全部放在这里)
1.2 安装交叉编译器(已安装cross-2.95.3的这一步骤省略!跳至1.3)
之前看到有个cross-3.4.1.tar.bz2,觉得高版本的应该要比低版本的好用,于是就直接安装了cross-3.4.1,但用cross-3.4.1总是不能把qtopia-free-2.2.0编译成功,后来才知道不是那么回事,只能用cross-2.95.3,于是又安装了cross-2.95.3。
1.解压cross-2.95.3.tar.bz2
把cross-2.95.3.tar.bz2复制到在1.1中建立的目录/usr/local/arm下,在终端中进行如下操作:
#cd /usr/local/arm
#tar jxvf cross-2.95.3.tar.bz2
等待解压完成。
2.设置路径变量
由于刚才是在/usr/local/arm的目录下安装的cross-2.95.3,所以设置路径为:PATH=/usr/local/arm/2.95.3/bin:$PATH,然后可以查看arm-linux-gcc的版本情况,在终端中进行以下操作:
#export PATH=/usr/local/arm/2.95.3/bin:$PATH
#arm-linux-gcc -v
这样就把交叉编译器的地址变量设置好了,但这样设置路径变量的方法只在此终端中生效,对其他的终端无效,若要设置对所有用户所有终端都有效的路径变量,在/etc/profile 中最后一行添加“export PATH=/usr/local/arm/2.95.3/bin:$PATH”,详见我的“在Linux里设置环境变量的方法(export PATH) ”的文章(http://blog.chinaunix.net/u2/86665/showart_1669729.html)。
1.3 交叉编译qtopia-free-2.2.0
1.解压文件
将armlib.tar和arminclude.tar复制到/root/yizhi目录下,分别进行解压,在终端中进行如下操作:
#cd /root/yizhi (若已在此目录下,可省略!)
#tar -xvf armlib.tar
#tar -xvf arminclude.tar
解压完成后,编译qtopia-free-2.2.0所需的库文件都在/root/yizhi/armlib目录下,头文件都在/root/yizhi/arminclude目录下。
将qtopia-free-src-2.2.0.tar.gz复制到/root/yizhi目录下,执行解压操作,得到/root/yizhi/qtopia-free-2.2.0目录。在终端中进行如下操作:
#cd /root/yizhi (若已在此目录下,可省略!)
#tar zxvf qtopia-free-src-2.2.0.tar.gz
2.编译修改工作
(1)在终端中进行如下操作:
#vi /root/yizhi/qtopia-free-src-2.2.0/qtopia/mkspecs/qws/linux-arm-g++/qmake.conf
将QMAKE_LIBS_QT = -lqte 改为
QMAKE_LIBS_QT = -lqte –lpng –lz –luuid –ljpeg
(2)如果想让qtopia支持鼠标,需要修改/root/yizhi/qtopia-free-src-2.2.0/qtopia/src/qt/qconfig-qpe.h文件,在终端中进行以下操作:
#vi /root/yizhi/qtopia-free-src-2.2.0/qtopia/src/qt/qconfig-qpe.h
注释如下部分:
/*
#ifndef QT_NO_QWS_CURSOR
#define QT_NO_QWS_CURSOR
#endif
#ifndef QT_NO_QWS_MOUSE_AUTO
#define QT_NO_QWS_MOUSE_AUTO
#endif
#ifndef QT_NO_QWS_MOUSE_PC
#define QT_NO_QWS_MOUSE_PC
#endif
*/
(3)复制文件
在终端中进行如下操作:
#cp /root/yizhi/qtopia-free-src-2.2.0/qtopia/src/qt/qconfig-qpe.h /root/yizhi/qtopia-free-src-2.2.0/qt2/src/tools
#cd /root/yizhi/qtopia-free-src-2.2.0/qtopia/src/libraries/qtopia
#cp custom-linux-ipaq-g++.cpp custom-linux-arm-g++.cpp
#cp custom-linux-ipaq-g++.h custom-linux-arm-g++.h
(4)将/usr/local/arm/2.95.3/arm-linux/sys-include/linux中的videodev.h文件中的#include <liunx/version.h>一行注释。在终端中的操作为:
#vi /usr/local/arm/2.95.3/arm-linux/sys-include/linux/videodev.h
3.设置环境变量、编译及安装
(1)设置编译qtopia的环境变量。在终端中进行如下操作:
#export QTDIR=/root/yizhi/qtopia-free-2.2.0/qt2
#export QPEDIR=/root/yizhi/qtopia-free-2.2.0/qtopia
#export LD_LIBRARY_PATH=$QTDIR/lib:$QPEDIR/lib:$LD_LIBRARY_PATH
#export TMAKEDIR=/root/yizhi/qtopia-free-2.2.0/tmake
#export TMAKEPATH=$TMAKEDIR/lib/qws/linux-arm-g++
#export PATH=/usr/local/arm/2.95.3/bin:$PATH
(2)创建交叉编译后的qtopia文件夹。在终端中执行:
#mkdir /root/yizhi/qtopia
(3)生成Makefile文件。在终端中执行:
#./configure –qte “-embedded –xplatform linux-arm-g++ -qconfig qpe –no-qvfb –depths 8,16,24,32 –no-xft –system-jpeg –system-libpng –system-zlib –gif –thread –release –I/root/yizhi/arminclude –L/root/yizhi/armlib –lpng –lz –luuid -ljpeg” –qpe ‘-xplatform linux-arm-g++ -edition pda –displaysize 800x600 –I/root/yizhi/arminclude –L/root/yizhi/armlib –prefix=/root/yizhi/qtopia’
(4)编译qtopia(此过程时间较长)。在终端中执行:
#make
(5)安装qtopia的交叉编译环境。在终端中执行:
#make install
编译完成以后,在/root/yizhi目录下出现一个qtopia目录,在/root/yizhi/qtopia/lib目录下可以看到:
libqte.so libqte.so.2 libqte.so.2.3 libqte.so.2.3.12
这四个文件,这是编译qte所需的库文件,将所有需要支持的库文件都放到新生成的qtopia/lib中,在终端中执行:
#cp /root/yizhi/armlib/*.so* /root/yizhi/qtopia/lib
OK,现在就将QTE环境编译成功了。
注:如果在编译的过程中出错,在重新make前需要先执行make clean,然后再./configure,再执行make的操作。
编译安装qtopia-free-2.2.0前要先编译安装qt-embedded-2.3.7,而安装qt-embedded-2.3.7之前要先安装qt-x11-2.3.2,所以,它们的安装顺序是:先安装qt-x11-2.3.2,再安装qt-embedded-2.3.7,最后安装qtopia-free-2.2.0。 |
|