Chinaunix首页 | 论坛 | 博客
  • 博客访问: 909302
  • 博文数量: 84
  • 博客积分: 4334
  • 博客等级: 上校
  • 技术积分: 1610
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-27 07:49
文章分类

全部博文(84)

文章存档

2012年(5)

2011年(21)

2010年(58)

分类: 嵌入式

2011-07-21 19:29:00

首先声明我并不是喜新厌旧,我活着就是为了折腾!哈哈......(有点过了)
 
很久没有碰Qt了,因为需要所以移植一下Qt到arm上,没有查阅最新版本到底有什么改动,但是总是忍不住的用新东东。想起公司老总说的一句话:人追求好的东西总是无止境的。他的本意是想说,虽然公司卖的是奢侈品,但是总是有许多客户的,因为人总是想着追求好的东西,包括物质与精神世界,很有道理,这跟我们有了nokia之后总想着买iphone了是一个道理。淡定淡定......
 
==============================================================================
交叉编译器:arm-linux-gcc 4.4.3(友善之臂提供)
平台:Ubuntu 10.04
硬件:mini2440,256M Flash,X35 LCD
Tslib:Tslib-1.4
==============================================================================
在前面内核和文件系统都是用4.1.2版本的交叉编译器编译的,本来没打算换编译器的,但是4.1.2编译器无法编译4.8.0版本qt,如果现在用qt应用程序用高版本的编译器会不会有什么问题?我是有这个担心的,但是最终的实验结果是只要替换掉高版本的lib即可。而为了不出现不必要的麻烦,我将文件系统重新用arm-linux-gcc.4.4.3编译了一遍。
 
一.准备工作
移植之前首先确保LCD和触摸屏移植成功。可以参阅:
 
老规矩,第一步还是移植tslib。
  1. #tar xzvf tslib-1.4.tar.gz
  2. #cd tslib/
  3. #./autogen.sh
  4. #echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache
  5. #./configure --host=arm-linux --cache-file=arm-linux.cache --enable-inputapi=no -prefix=/home/xura/opt/tslib
  6. #make && make install
  7. #cp -fr /home/xura/opt/tslib /home/xura/work/tslib(没有则新建一个)
  8. #cd /home/xura/work/tslib/etc
  9. #vi ts.conf
去掉module_raw input前面的#号,同时把它的#号注释项全部删除,不要让这些BT的东东扰乱了你的思维。
我的最终ts.conf内容为:
  1. module_raw input
  2. module pthres pmin=1
  3. module variance delta=30
  4. module dejitter delta=100
  5. module linear
将tslib下载到开发板,我使用的U盘。当然linux内核要支持USB咯。可以参考:
http://blog.chinaunix.net/space.php?uid=20788517&do=blog&id=34705
设置环境变量:
在开发板设置环境变量(我将tslib放置在/opt目录下)
  1. #vi setenv.sh
export T_ROOT=/opt/tslib
export LD_LIBRARY_PATH=$T_ROOT/lib
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_TSDEVICE=/dev/input/event0
export TSLIB_PLUGINDIR=$T_ROOT/lib/ts
export TSLIB_CONFFILE=$T_ROOT/etc/ts.conf
export TSLIB_CALIBFILE=$T_ROOT/pointercal
export LD_LIBRARY_PATH=$T_ROOT/lib:$LD_LIBRARY_PATH
 
  1. chmod +x setenv.sh
  2. . setenv.sh
  3. cd /opt/tslib/bin
  4. ./ts_calibrate
进行测试。如果一切正常,进入下一步移植qt。
 
二.编译Qt4.8.0
 
可以到qt的ftp服务器上下载:
 
我的配置:
  1. #./configure -prefix /home/xura/work/qtearm_4.8.0 -embedded arm -no-opengl
  2.   -no-qt3support -no-cups -no-dbus -no-3dnow -no-neon -no-phonon -no-openssl
  3.   -no-svg -qt-mouse-tslib -I (我的tslib目录/include) -L (我的tslib目录/lib)

  4. #make && make install
编译完成之后Qt被安装在/home/xura/work/qtearm_4.8.0目录下。
设置环境变量:
  1. #vi setqteenv.sh
QTEDIR=/home/xura/work/qtearm_4.8.0
PATH=$QTEDIR/bin:$PATH
LD_LIBRARY_PATH=$QTEDIR/lib:$LD_LIBRARY_PATH

#source setqteenv.sh
即可生效环境变量,使用qmake等工具了。
 
三.移植Qt
 
写一个应用程序,移植到开发板。
可以到qt的example或者demo里面找,这里我用自己写的代码做测试。用qt for PC测试:
qmake-->make-->
在ubuntu下面运行结果:
 
用qtearm_4.8.0编译之后,查看共享库。
 
将程序与库文件与下载到开发板,设置开发板的环境变量:
  1. #vi setqtearm.sh

export T_ROOT=/opt/tslib                 
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_TSDEVICE=/dev/input/event0
export TSLIB_PLUGINDIR=$T_ROOT/lib/ts
export TSLIB_CONFFILE=$T_ROOT/etc/ts.conf
export TSLIB_CALIBFILE=$T_ROOT/pointercal
export QTEDIR=/opt/qtearm              
export QT_QWS_FONTDIR=$QTEDIR/lib/fonts  
export QWS_MOUSE_PROTO=Tslib:/dev/input/event0
export QWS_KEYBOARD=none
export LD_LIBRARY_PATH=$T_ROOT/lib:$QTEDIR/lib:$LD_LIBRARY_PATH
 
运行程序即可。
有图有真相。(手机拍的)
 
声明:Freedomxura原创,欢迎转载,请注明出处,http://xurafreedom.cublog.cn
阅读(14155) | 评论(0) | 转发(2) |
给主人留下些什么吧!~~