您的位置:首页 > 编程语言 > Qt开发

移植QT到CORTEX-A8上的记录

2013-12-14 16:50 316 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: