QT在JZ2440开发板上移植笔记

QT在JZ2440开发板上移植笔记:

为了和移植手册保持一致使用的gcc编译器版本降为3.4.5:
#if 0
    tar xjf arm-linux-gcc-4.3.2.tar.bz2  //解压工具链
    对于arm-linux-gcc-4.3.2解压出来得到usr目录,工具链在usr/local/arm/4.3.2/bin,
    对于gcc-3.4.5解压出来得到gcc-3.4.5-glibc-2.3.6工具链目录在gcc-3.4.5-glibc-2.3.6/bin/
    到解压出来的工具链目录下:
    cd usr/local/arm/4.3.2/bin           
    pwd
    /home/book/workspace/jz2440_project/system/usr/local/arm/4.3.2/bin
#else
    为了移植QT文件系统,把gcc编译器版本降为3.4.5:
    export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/work/tools/gcc-3.4.5-glibc-2.3.6/bin
    sudo vi /etc/environment
    PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/work/tools/gcc-3.4.5-glibc-2.3.6/bin"
#endif


① 编译、安装jpeg库jpegsrc.v6b.tar.gz:
tar xzvf jpegsrc.v6b.tar.gz
cd jpeg-6b/
./configure --enable-shared --enable-static --prefix=/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux --build=i386 --host=arm


vi 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库:
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/下的include、lib目录中安装一些头文件和库,比如uuid/uuid.h、libuuid.a、libuuid.so等


③ 编译、安装zlib库:
tar xzvf zlib-1.2.3.tar.gz
cd zlib-1.2.3/
./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库:
tar xjf libpng-1.2.23.tar.bz2
cd libpng-1.2.23/
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库:
      由于使用tslib-1.3按照文档修改依然出现“libtool:link: only absolute run-paths are allowed“的错误,决定使用tslib-1.4:


a、使用tslib-1.3:
tar xjf tslib-1.3.tar.bz2
cd tslib-1.3/
./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: only absolute run-paths are allowed“的错误,在plugins/Makefile里面找rpath,找到将其注释并加上绝对路径:
#LDFLAGS :=$(LDFLAGS) -rpath $(PLUGIN_DIR)
LDFLAGS :=$(LDFLAGS) -rpath `cd $(PLUGIN_DIR) && pwd`


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


b、使用tslib-1.4:
tar xzf tslib-1.4.tar.gz
cd tslib
./autogen.sh


echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache
./configure --host=arm-linux --cache-file=arm-linux.cache --prefix=$(pwd)/tmp


// 如果使用的arm-linux-gcc-4.3.2交叉编译工具要修改/usr/local/arm/4.3.2里
// 的宏EV_VERSION要修改input.h,再make,详情参见“触摸屏实验章节”
make
make install      //安装到tmp目录


⑥ 使用补丁修改、编译QT:
tar xzf qtopia-free-src-2.2.0.tar.gz
cd qtopia-free-2.2.0
patch -p1 < ../qtopia-free-2.2.0_jz2440.patch


./configure -qte '-embedded -xplatform linux-arm-g++ -qconfig qpe -depths 16,24 -no-qvfb -system-jpeg -system-libpng -system-zlib -tslib -gif -thread -lts' -qpe '-xplatform linux-arm-g++ -edition pda -displaysize 240x320' -qt2 '-no-xft' -dqt '-no-xft'


make
make install


这将把所有必需的目录、文件复制到qtopia/image/opt/Qtopia目录下。
注意:./configure时,要输入“yes”并回车才能继续下去

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/7b12b1305ab6d59ee00b576dc2fd10c9.html