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

mini2440下移植qt4.4.2

2011-01-04 12:19 246 查看
<!--
@page { margin: 0.79in }
P { margin-bottom: 0.08in }
H3 { margin-bottom: 0.08in }
H3.western { font-family: "Liberation Serif", "Times New Roman", serif }
H3.cjk { font-family: "DejaVu LGC Sans" }
H3.ctl { font-family: "DejaVu LGC Sans" }
-->

1.安装arm-linux-gcc-3.4.1.tar.bz2

在根目录下解压,解压后的默认目录在/usr/local/arm/3.4.1

设置环境变量,运行命令:

vi
/etc/profile

加入
export
PATH=/usr/local/arm/3.4.1/bin:$PATH

2.编译tslib-1.4

解压到/home下

#./autogen.sh

#./configure --prefix=/home/linux/mytslib --host=arm-linux
ac_cv_func_malloc_0_nonnull=yes

#make

#make
install-strip //生成瘦身应用程序和库

3.编译qt-x11-opensource-src-4.4.2.tar.gz(用以生成qvfb)

tar
zxf qt-x11-opensource-src-4.4.2.tar.gz
cd
/home/linux/qt/qt-x11-opensource-src-4.4.2

./configure

make
make
install

cd
tools/qvfb

make
生成qvfb

4.编译qt-embedded-linux-opensource-src-4.4.2.tar.gz(arm)

tar
zxf qt-embedded-linux-opensource-src-4.4.2.tar.gz
cd qt-embedded-linux-opensource-src-4.4.2

(我的QT的安装目录设置为根目录下的/usr/src/qt442arm)

./configure
-prefix /usr/src/qt442arm -release -shared -fast -pch -no-qt3support
-qt-sql-sqlite -no-libtiff -no-libmng -qt-libjpeg -qt-zlib -qt-libpng
-qt-freetype -no-openssl -nomake examples -nomake demos -nomake tools
-optimized-qmake -no-phonon -no-nis -no-opengl -no-cups -no-xcursor
-no-xfixes -no-xrandr -no-xrender -no-xkb -no-sm -no-xinerama
-no-xshape -no-separate-debug-info -xplatform qws/linux-arm-g++
-embedded arm -depths 16 -no-qvfb -qt-gfx-linuxfb -no-gfx-qvfb
-no-kbd-qvfb -no-mouse-qvfb -qt-kbd-usb -confirm-license
-qt-mouse-tslib
-I /home/linux/mytslib/include -L /home/linux/mytslib/lib

上面的红色部分必须让找前面的tslib的目录设置,否则会出现“The
tslib functionality test failed!”错误

make

make
install

qt-embedded-arm
被安装在/usr/src/qt442arm下.

建立arm环境变量文件
vi
setarmrc
添加如下内容:
QTEDIR=/usr/src/qt442arm/
PATH=/usr/src/qt442arm/bin/:$PATH
LD_LIBRARY_PATH=/usr/src/qt442arm/lib/:$LD_LIBRARY_PATH
保存退出.移到/usr/src/qt442arm
中。

编译ARM版QT应用程序前,先执行此脚本文件,如source
serarmrc

cd
example/qws/mousecalibtration

qmake
&&make (生成mousecalibtration可执行文件,后面需要将其拷贝到根文件中)

//qmake
in /usr/src/qt442arm/bin

3.编译qt-embedded-linux-opensource-src-4.4.2.tar.gz(x86)

tar
qt-embedded-linux-opensource-src-4.4.2.tar.gz
重命名为qt-embedded-linux-opensource-src-4.4.2x86

./configure
-prefix /usr/src/qt442x86 -embedded x86 -qvfb -DQT_QLOCALE_USES_FCVT

说明:configure
时候加-DQT_QLOCALE_USES_FCVT就可以了,我也是碰到这个问题,搞了很久,追踪进去发现的浮点数运算问题导致的
make
make
install

qt-embedded-x86被安装在/usr/src/qt442x86下

建立x86环境变量文件
vi
setx86rc
添加如下内容:
QTEDIR=/usr/src/qt442x86/
PATH=/usr/src/qt442x86/bin/:$PATH
LD_LIBRARY_PATH=/usr/src/qt442x86/lib/:$LD_LIBRARY_PATH
保存退出.移到/usr/src/qt442x86中(mv
setx86rc
/usr/src/qt442x86)

编译embedded
x86 版QT应用程序前,先执行此脚本文件

5.制作根文件

我的工作目录是在根文件下,首先将root_default.tgz拷贝到根目录下,加压,生成root_default

cd
/root/root_default(目录设为nfs_root,即为mini2440的根节点,下面会用到)

复制字库文件
把PC
机上/usr/src/qt442arm/lib/fonts
目录上所有字库文件CP
到mini
2440上/usr/src/qt442arm/lib/fonts下,实际为/root/root_default/usr/src/qt442arm/lib/fonts

复制运行库

在PC
机上复制下列文件到mini
2440的usr/src/qt442arm/lib/目录下,文件为:i.so.4
libts-0.0.so.0 libQtCore.so.4 libQtNetwork.so.4
一般在PC
机上/usr/src/qt442arm/lib/和/tslib/上可以找到上述文件。复制
时注意如果需要复制的文件是链接文件,则把被链接文件都要复制上。

复制触摸屏软件
复制PC
机上/tslib/目录上全部文件(含子目录)到mini
2440上/tslib
目录

在开发板上建立环境变量
修改开发板上/etc/profile
文件,增加以下内容:
export
QTDIR=/usr/src/qt442arm

export
TSLIB_ROOT=/tslib

export
PATH=$QTDIR/bin:$PATH

export
TSLIB_CONSOLEDEVICE=none

export
TSLIB_FBDEVICE=/dev/fb0

export
TSLIB_TSDEVICE=/dev/input/event0

export
TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts

export
TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf

export
TSLIB_CALIBFILE=/etc/pointercal

export
QWS_MOUSE_PROTO=tslib:/dev/input/event0

export
LD_LIBRARY_PATH=$TSLIB_ROOT/lib:$QTDIR/lib

修改mini
2440
/tslib/etc/ts.conf
文件:把第二行#
module_raw input
前面的#和空格去除,保存退出。

校准触摸屏
从新启动开发板,执行:
cd
/
cd tslib/bin
./ts_calibrate 校准触摸屏
./ts_test
测试触摸屏
如果正常,QT4
Embedded 移植成功!

注14.4.2的lib文件夹全部拷贝过来,但是要删除fonts内除了wenquanyi_120_50.qpf
之外的其他文件,否则太大

注2:用下面方法生成yaffs2文件

解压mkyaffsimage.tgz,得到mkyaffsimage可执行文件

./mkyaffsimage
root_default root.yaff2

得到根文件root.yaff2,如果要看一下大小,可以执行

这样可以将root.yaff2烧到板子上去了。

注3:要是在板子上运行的时候提示缺少某些文件的时候,就去在PC机上的linux下寻找,需要主要的是看若是提示缺少的文件是以个链接文件时,需要把链接对象也拷入。

在板子上运行mousecalibtration的时候没有出现什么错误,可以正确的显示输入的汉字

目前在板子上运行的时候存在一定的问题:进入tslib运行ts_calibrate,总是提示ts_open:
No such file or directory,这个问题一直没有解决,留在后面解决。

如果需要在PC机上使用qvfb来模拟,并且程序中需要显示中文的话,在执行程序的时候可以这样写:./程序名
-qws
-font wenquanyi,这样在qvfb中可以正常的显示中文
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: