移植QT到CORTEX-A8上的记录

来源:互联网 发布:数据质量分析报告 编辑:程序博客网 时间:2024/04/28 18:27
qtmakefilelibrary嵌入式编译器脚本

作者:邹南,华清远见嵌入式培训中心讲师。

前段时间做linux2.6.35+CORTEX-A8的教学项目,这里将过程简单罗列。

一、移植TSLIB

1、拷贝“项目代码\tslib源码”目录下的tslib-1.4.tar.gz到linux系统

2、解压源码

$ tar -zxvf tslib-1.4.tar.gz
        $ cd tslib-1.4

3、执行autogen.sh脚本生产configure文件

$ ./autogen.sh

这一步需要安装一些工具,如:在ubuntu系统下可以执行:

$ sudo apt-get install autotools-dev

4、执行confugure生成Makefile文件

$ echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache
        $ ./configure --host=arm-none-linux-gnueabi --prefix=/home/linux/tslib --cache-file=arm-linux.cache

说明:

--host是指你的交叉编译器的前缀;例如:你的交叉编译器是arm-linux-gcc,则--host=arm-linux.如果是arm-none-linux-gnueabi-gcc

则--host=arm-none-linux-gnueabi

--prefix 是你执行make install 的时候编译后生成的可执行文件和库文件以及配置文所安装的目录,这个目录不能和tslib源码目录相同;
configure文件下还有很多选项,你可以执行./configure --help 来进行选择其他项,不过在这里这些选项就够了。

5、编译安装

$ make
        $ make install

6、把指定安装目录下的tslib的文件都拷贝到你所挂载的根文件系统下

$ cp -a /home/linux/tslib /source/rootfs

7、修改/rootfs/tslib下的etc目录中ts.conf文件

#vim ts.conf 将第二行的#module_raw input修改成module_raw input

注意一定要顶格写,否则程序执行时会发生读取ts.conf错误

8、导出环境变量

在/source/rootfs/etc/profile中添加如下代码:

export TSLIB_ROOT=/tslib
        export TSLIB_TSDEVICE=/dev/event0
        export LD_LIBRARY_PATH=/tslib/lib:$LD_LIBRARY_PATH
        export QWS_SIZE=320x240
        export TSLIB_FBDEVICE=/dev/fb0
        export TSLIB_PLUGINDIR=/tslib/lib/ts
        export TSLIB_CONSOLEDEVICE=none
        export TSLIB_CONFFILE=/tslib/etc/ts.conf
        export POINTERCAL_FILE=/etc/pointercal
        export QWS_MOUSE_PROTO=Tslib:/dev/event0
        export TSLIB_CALIBFILE=/etc/pointercal
        export QWS_DISPLAY="LinuxFb:mmWidth100:mmHeight130:0"
        export TSLIB_TSEVENTTYPE=H3600

说明:

        TSLIB_TSDEVICE //触摸屏设备文件名。
                TSLIB_CALIBFILE //校准的数据文件,由ts_calibrate校准程序生成。
                SLIB_CONFFILE //配置文件名。
                TSLIB_PLUGINDIR //插件目录
                TSLIB_CONSOLEDEVICE //控制台设备文件名
                TSLIB_FBDEVICE //设备名

以上环境变量在实际开发中的实际配置可以根据实际情况决定。而这些指定的设备节点一定要和你的开发板上的/dev目录下的设备节点相对应。

9、在开发板上运行/tslib/bin下的测试程序。

# /tslib/bin/ts_calibrate

二、移植QT lib <4.7.0>

../qt-everywhere-source/configure -prefix /qt-everywhere -embedded arm -release -opensource -fast -no-accessibility -no-scripttools -no-mmx -no-multimedia -no-svg -no-webkit -no-3dnow -no-sse -no-sse2 -silent -qt-libpng -qt-libjpeg -no-libtiff -make libs -nomake tools -nomake examples -nomake docs -nomake demo -no-nis -no-cups -no-iconv -no-dbus -no-openssl -xplatform qws/linux-arm-gnueabi-g++ -little-endian -qt-freetype -depths 16,18 -qt-gfx-linuxfb -no-gfx-transformed -no-gfx-multiscreen -no-gfx-vnc -no-gfx-qvfb -qt-kbd-linuxinput -no-glib -qt-mouse-tslib -I/home/linux/tslib/include -L/home/linux/tslib/lib

make && make install

三、在板子下配置环境变量:

修改/source/rootfs/etc/profile添加如下内容:

        export LD_LIBRARY_PATH=/qt-everywhere/lib:$LD_LIBRARY_PATH
                export QWS_SW_CURSOR
                export set HOME=/root
                export set QPEDIR=/ qt-everywhere

下面这个脚本是用来编译ARM的QTAPP

#build for arm 
         #!/bin/bash
        /home/test/qt2/bin/qmake -spec /home/test/qt2/mkspecs/qws/linux-arm-g++ -o Makefile *.pro 
        make clean
        make

下面这个脚本是用来编译x86的QTAPP

#build for x86
        #!/bin/bash
        /home/lapset/qtsdk-2010.01/qt/bin/qmake -o Makefile -spec /home/lapset/qtsdk-2010.01/qt/mkspecs/qws/linux-generic-g++ *.pro 
        make clean
        make

原文出处:http://blog.csdn.net/farsight2009/article/details/7488725

0 0
原创粉丝点击