注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

快乐的机器猫 大桥加加网易分站

要有更宽广的视野和胸怀

 
 
 

日志

 
 

实战tiny6410上的QT开发环境搭建与示例程序 作者:stephenzhu 小桥加加  

2011-05-24 14:39:36|  分类: LINUX |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
虚拟机: vmware7 + fedora9
开发板: tiny6410
qt版本:qte4.7.0 (后来移植qt4.7.3也成功了)

1) 在虚拟机上 获得QTE4.7源码并释放且编译
 第一步,获得源码并翻译
在虚拟机上,把qt-everywhere-opensource-src-4.7.0.tar.gz 释放。
释放的目录可以是任何比如    /home/stephen/stephenshare

第二步,编译
在虚拟机上操作

先配置参数:
echo yes| ./configure --prefix /opt/Qt4.7 -opensource -embedded arm -xplatform qws/linux-arm-g++ -no-webkit -qt-libtiff -qt-libmng -qt-mouse-tslib -qt-mouse-linuxtp -no-neon
也有人这么写(加上了-qt-mouse-pc):
echo yes | ./configure --prefix=/opt/Qt4.7 -opensource -embedded arm -xplatform qws/linux-arm-g++  -no-webkit -qt-libtiff -qt-libmng  -qt-mouse-tslib -qt-mouse-pc -no-mouse-linuxtp -no-neon
(补充:如果在这步之前系统中没有tslib, 那还要先编译tslib1.4
1)编译tslib 1.4
./autogen.sh生成configure

./configure --prefix=/opt/tslibemb --host=arm-linux ac_cv_func_malloc_0_nonnull=yes
make && make install
2)命令行
echo yes| ./configure --prefix=/opt/Qtemb4.7 -opensource -embedded arm -xplatform qws/linux-arm-g++ -no-webkit -qt-libtiff -qt-libmng -qt-mouse-tslib -I/opt/tslibemb/include -L/opt/tslibemb/lib -qt-mouse-linuxtp -no-neon -ldl
)


然后make && make install
请注意这里设了--prefix是/opt/Qt4.7,就安装在这目录下 , 有的时候这个写法不被系统认可,需要写成--prefix=/opt/Qt4.7即加一个“=”号.

在我的双核DUO T7250电脑上,虚拟机768M RAM情况下,编译过程花费了5个小时。

2) 在ARM板上即tiny6410上去部署Qt4.7
把虚拟机上的Qt4.7打包
#cd /opt
#tar cvzf qt4.7.tgz Qt4.7
再以SD卡或nfs方式, 在tiny6410上的/opt目录解压
#cd /opt
#tar xvzf /sdcard/qt4.7.tgz

3) 虚拟机里 QT Creator安装配置及示例编译
在虚拟机里装QT CREATOR,注意是到nokia官方去下载最新的包,现在的安装方式是下载一个20MB的小包,下载后chmod +x 再运行,它会自动上网download全部内容并安装。 安装好的效果和在windows上几乎没差别
安装后,写个简单的程序。 新建qt gui application. 初始编译是生成本地代码即fedora9上的代码,界面像是这样
实战tiny6410上的QT开发环境搭建与示例程序 - huasoft - 快乐的机器猫 小桥加加网易分站
 

下面需要安装arm交叉编译器并指定arm的qmake。


设置参数:
第一步,
Tools->Options->Qt4->Qt Versions
加一个qmake location类似这样  /opt/Qt4.7/bin/qmake
第二步,左侧工具栏Projects->Build Settings 的Qt version选qt embbed 4.7.0. 然后点击那个锤子可以交叉编译了,生成了
helloqt4 这是我们的arm可执行文件了。不放心的话可以使用命令file helloqt4看到有arm字样就成功了

请注意有的时候如果不能正确生成交叉编译的文件,请先clean再rebuild all

接下来把helloqt4复制到ARM板的目录下比如/opt/Qt4.7/demos/embedded

4) 在ARM板上改QT配置文件

接下来就是改开机启动文件/etc/init.d/rcS 和 /bin/qt4配置文件
在/etc/init.d/rcS中加入:
echo "now executing /bin/qt4 file" > /dev/tty1
/bin/qt4

代表要执行qt4文件脚本,在这个文件脚本中既有qt4的本身环境变量设置,又有我们试验的要执行的交叉编译的文件helloqt4

a. 需要在/bin/qt4中间部分加入QT相关的变量设置
QTDIR=/opt/Qt4.7
PATH=$QTDIR/bin:$PATH
LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
export QTDIR PATH LD_LIBRARY_PATH


b. 在/bin/qt4的尾部加入以下内容:
cd /opt/Qt4.7/demos/embedded
./helloqt4 -qws&

其中-qws参数很重要,代表的是启动qt windows server(因为没有象qtopia一样的图形支持环境)

注意把原来调用qtopia的几行脚本注释掉,以免和这个qte4.7冲突

5)在ARM板上reboot, 可以正确运行啦
显示我们的对话框helloqt4,按X号关闭后,退出了qt界面。
此时界面出现字符状态,并且串口终端激活了,可以按enter进行命令状态进行其它操作。当然,这样的步骤在正式产品上不能出现。所以是否看看不允许用户界面上出现关闭符号会比较好。
另外:由于屏幕及字体原因,有时候字体可能显示的特别小,这时候我们就需要精简qt的fonts目录,比如/opt/Qt4.7/lib/fonts里,只留住特定的字体比如unifont_160_50.qpf即可。其它的字体就不妨建个文件夹临时放进去,以备后用。

6)多任务的运行
补充:-qws是先开启一个qt windows server,然后运行应用程序。如果我们要先后运行2个程序,可以使用后台,即这样:
./helloqt4 -qws&
sleep 3
./another&
这样可以同时在后台运行多个应用程序,且串口终端也可以正常使用。就是非独占式。
为什么要使用sleep 3来延时3秒呢?经过实验,qws服务器有时候是不能立即启动的,需要点时间让它启动,这样后面的程序another才能找服务器,否则可能会提示错误。

7)后记
截止2011年6月9日,笔者把NOKIA官网上的最新的Qt4.7.3也完成了移植,移植过程和上面的Qt4.7.0几乎一样的。
  评论这张
 
阅读(1865)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018