qtopia/embed编译

本文介绍如何在Qtopia嵌入式系统中搭建开发环境,包括编译安装必要的库如jpeg、uuid、zlib等,以及配置环境变量和相关文件修改。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

路径:

/work/GUI/qtopia/qtopia-free-2.2.0

qtopia是在qt/embedded的基础上开发的一个应用环境,相当于qt/embedded的集成开发环境

1.前期准备:

①编译、安装jpeg

源码为/work/GUI/qtopia/deps/jpegsrc.v6b.tar.gz,解开后得到目录jpeg-6b

先使用以下命令进行配置:

$ ./configure --enable-shared --enable-static \

--prefix=/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux\

--build=i386 --host=arm

然后修改生成的Makefile,如下:

CC= gcc 改为:CC= arm-linux-gcc

AR= ar rc 改为:AR= arm-linux-ar rc

AR2= ranlib 改为:AR2= arm-linux-ranlib

最后是编译和安装,执行如下命令:

$ make

$ make install-lib

这将在/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux中的include目录中生成一些头文件,

lib 目录中生成一些jpeg库文件。

②编译、安装uuid

源码为/wok/GUI/qtopia/deps目录下的e2fsprogs-1.40.2.tar.gz

解压缩后参照它的INSTALL文件即可编译。对于交叉编译,在执行../configure

需要指定交叉编译工具链和目标板。执行的命令如下:

$ tar xzf e2fsprogs-1.40.2.tar.gz

$ cd e2fsprogs-1.40.2/

$ mkdir build; cd build

$ ../configure --with-cc=arm-linux-gcc--with-linker=arm-linux-ld --enable-elf-shlibs

--host=arm-prefix=/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux

$ make

$ make install-libs

最后一条命令在/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/下的includelib目录中安装

一些头文件和库,比如uuid/uuid.hlibuuid.alibuuid.so

③编译、安装zlib

源码为/wok/GUI/qtopia/deps目录下的zlib-1.2.3.tar.gz。解压之后使用以下命令进行配

:

./configure --shared--prefix=/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux

然后修改生成的Makefile,以下是修改后的结果,都加上了arm-linux-前缀:

CC=arm-linux-gcc

……

LDSHARED=arm-linux-gcc -shared -Wl,-soname,libz.so.1

……

CPP=arm-linux-gcc -E

……

AR=arm-linux-ar rc


……

RANLIB=arm-linux-ranlib

最后执行以下命令编译、安装:

$ make

$ make install

④编译、安装png

源码为/wok//GUI/qtopia/deps目录下的libpng-1.2.23.tar.bz2

解压后进入它的目录,复制Makefile:

$ cp scripts/makefile.linux ./Makefile

修改Makefile,以下是修改后的结果,都加上了arm-linux-前缀:

AR_RC=arm-linux-ar rc

CC=arm-linux-gcc

……

RANLIB=arm-linux-ranlib

……

prefix=/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux

最后执行以下命令编译、安装:

$ make

$ make install

⑤编译、安装触摸屏ts

源码为/wok/GUI/qtopia/deps目录下的tslib-1.3.tar.bz2

解压后进入它的目录,执行以下命令:

$ ./autogen.sh

$ echo "ac_cv_func_malloc_0_nonnull=yes">arm-linux.cache

$ ./configure --host=arm-linux--cache-file=arm-linux.cache --enable-inputapi=no

--prefix=/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux

make 之前,为了支持触摸屏修改src/ts_read_raw.c文件,如下修改代码:

char *defaulttseventtype="UCB1x00";

改为:

char *defaulttseventtype="H3600";

为了防止出现libtool:link: onlyabsolute run-paths are allowed的错误,

plugins/Makefile 里面找rpath,找到将其注释并加上绝对路径:

#LDFLAGS :=$(LDFLAGS) -rpath $(PLUGIN_DIR)

LDFLAGS :=$(LDFLAGS) -rpath `cd $(PLUGIN_DIR)&& pwd`

最后执行以下命令编译安装:

$ make

$ make install

 得到本机运行版本uic 工具
     下载地址:
http://vanille.de/tools/uic-qt2
      改变权限:
          chmod u+rx uic-qt2
      改名:
          mv uic-qt2 uic
      拷贝到qtopia-free-2.2.0/qt/bin中

          cp uic /home/nfs/qtopia-free-2.2.0/qt2/bin中

. 安装或升级 freetype 到 2.1.10 版本

  1. 下载 freetype 源代码压缩包

  下载地址:

  http://prdownloads.sourceforge.net/freetype/freetype-2.1.10.tar.bz2

  把下载回来的压缩包解压。

  2. 打开 freetype 的 hinting 内嵌属性

  用文本编辑器打开以下文件:

  freetype-2.1.10/include/freetype/config/ftoption.h

  把439行的注释符号(/* ...... */)去掉,改成如下这样:

  #define TT_CONFIG_OPTION_BYTECODE_INTERPRETER

  保存并退出文本编辑器。

  3. 编译安装

  进入 freetype-2.1.10 文件夹,并以 root 身份在终端命令行运行:

  #cd freetype-2.1.10 (这一步是进入 freetype-2.1.10 文件夹的操作)

  #./configure --prefix=/usr

  #make

  #make install

. 安装或升级 fontconfig 到 2.3.2 版本

  1. 下载源代码压缩包

  下载地址:

  http://www.fontconfig.org/release/

  2. 编译安装

  进入 fontconfig-2.3.2 文件夹,并以 root 身份在终端命令行运行:

  #cd fontconfig-2.3.2 (这一步是进入 fontconfig-2.3.2 文件夹的操作)

  #./configure --disable-docs --sysconfdir=/etc --prefix=/usr --mandir=/usr/share/man

  #make

  #make install

. 安装或升级 libXft 到 2.1.7 版本

  1. 下载源代码压缩包

  下载地址:

  http://xlibs.freedesktop.org/release/?C=N;O=D

  2. 编译安装

  进入 libXft-2.1.7 文件夹,并以 root 身份在终端命令行运行:

  #cd libXft-2.1.7 (这一步是进入 libXft-2.1.7 文件夹的操作)

  #./configure --prefix=/usr/X11R6

  #make

  #make install

2.设置环境变量,运行./setQteEnv即可

export QPEDIR=/work/GUI/qtopia/qtopia-free-2.2.0/qtopia
export QTDIR=/work/GUI/qtopia/qtopia-free-2.2.0/qt2
export TMAKEDIR=/work/GUI/qtopia/qtopia-free-2.2.0/tmake
export TMAKEPATH=$TMAKEDIR/lib/qws/linux-arm-g++
export PATH=$QTDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH

3.修改相关文件

1). qtopia-free-2.2.0/qtopia/mkspecs/qws/linux-arm-g++/qmake.conf
将此行
   QMAKE_LIBS_QT = -lqte
修改为
       QMAKE_LIBS_QT = -lqte -lpng -lz -luuid -ljpeg
2).修改$QPEDIR/src/qt/qconfig-qpe.h文件,定义相应的宏,在最后加上
#define QT_QWS_IPAQ
#define QT_QWS_IPAQ_RAW
这样是为了让Qtopia自动支持触摸屏
3.修改qtopia-free-2.2.0/qt2/include/qvaluestack.h
  将remove( this->fromLast() );改为this->remove( this->fromLast() );
4.qtopia-free-2.2.0/qtopia/src/3rdparty/plugins/codecs/libflash/
  将其中的jpeglib.h改名为jpeglib.h.bak
5.qtopia-free-2.2.0/qtopia/src/libraries/qtopia/qdawg.cpp

4.编译

打补丁

》patch <../qtopia-free-2.2.0_jz2440.patch

>mkdir /opt/qt-2.2.0

>./configure -qte "-embedded -xplatform linux-arm-g++ -qconfig qpe -no-qvfb -depths 16,24 -system-jpeg -system-libpng -system-zlib -gif -thread -no-xft -release -lpng -lz -luuid -ljpeg" -qpe '-xplatform linux-arm-g++ -edition pda -displaysize 320x240 -prefix=/opt/qt-2.2.0'


./configure -qte "-embedded -xplatform linux-arm-g++ -qconfig qpe -no-qvfb -depths 16,24 -system-jpeg -system-libpng -system-zlib -gif -thread -no-xft -release -lpng -lz -luuid -ljpeg" -qpe '-xplatform linux-arm-g++ -edition pda -displaysize 480x272 -prefix=/opt/qt-2.2.0'

注:如果make install 不成功,改成root安装

sudo passwd root 重设root用户密码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值