免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2174 | 回复: 0
打印 上一主题 下一主题

移植qt4.8.0到mini2440 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-12-22 08:51 |只看该作者 |倒序浏览
首先声明我并不是喜新厌旧,我活着就是为了折腾!哈哈......(有点过了)
 
很久没有碰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
 
 
我的配置:
  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
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP