实验室有两块开发板:mini2440和Tiny6410,一年前在按照这两款开发板提供的用户手册学习嵌入式qt开发时,都成功完成了移植。时过境迁,看着往日的纸质笔记本上的笔记,看着不同方法的移植方法,自己的头都大了,究其原因应该是自己对qt开发没有一个全局的认识,只知道一步步安装用户手册完成操作。借此机会把qt以及开发环境进行
一下整理。
《mini2440用户手册 -20110421.pdf》介绍了两种方法:编译Qtopia-2.2.0和编译QtE-4.6.3这两种方法。
《mini6410用户手册-20110112.pdf》介绍了三种方法:编译Qtopia-2.2.0, 编译QtE-4.7.0 和编译Qtopia4(Qt-Extended-4.4.3).
在学习嵌入式qt开发入门阶段,是按照《Mini6410+Qt4和Qtopia编程开发指南-20110112.pdf》这份文档学习的。以上是我学习qt入门的参考资料,经过按照这三份手册上的实践,我选择QtCreator作为我的开发工具。这样开发效率最高,好多代码QtCreator都会自动生成,作为菜鸟级别的我只需要集中精力完成核心代码的编写就行了。
我是按照《Mini6410+Qt4和Qtopia编程开发指南-20110112.pdf》第4.2节使用Qt Creator工具开发第一个Qt4 程序到mini6410上的介绍完成安装的。文档上的版本是2010 5月的,为了避免错误我也是安装相同版本的。
下载地址http://pan.baidu.com/s/1kTJTj8N
我虚拟机里面安装的版本如下图安装完成之后可以按照文档的介绍完成基本测试程序的编写,验证自己安装是否正确,以及自己敲入的代码能够正常运行。
继续安装4.2.3节进行操作。因为按照文档 3.3 移植Qt4.7 到mini6410(不是文档中说的2.3节) 我已经把这个安装到上面的 / opt/Qt4.7/目录下,所以这里就需要改变下选择的目录就行了。
configure有一段需要敲入的代码:
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
结果如下图:
这个时候在PC环境上测试环境就安装好了,可以在不同的目录生成不能平台下的可执行代码,在desktop目录下就可以生成PC平台下的执行代码在arm目录下就可以生成Tiny6410开发板上的可执行代码。至此在Fedora9上Qt Creator的开发工具就安装成功了,下一步就是下载到arm板上测试了。
这里补充个知识:QtE4.7.0在ARm板不支持虚拟键盘,也就是说不能输入数据,这个我们在最后下载到板子上就可以看到。那为什么还是要使用它呢?
原因是:第一,Tiny6410开发板上自带了QtE4.7.0,这样我们就不需要进行移植了,即使刷机了也可以正常使用程序;
当然它还自带了Qtopia-2.2.0和Qtopia4(Qt-Extended - 4.4.3)
第二,我实际的项目并不需要输入功能,只需要显示功能。
现在我们来配置Tiny6410的qt开发环境了,具体方法和文档有一点不一样,我参考了个链接,这样执行qt程序时更方便。
参考链接http://blog.chinaunix.net/uid-26663150-id-3245971.html
pdf文档说是要执行个setqt4env,当时就感觉有点突兀,后来才知道它的来源了。我们在Tiny6410的/bin目录下
关于qt有三个可执行文件分别是qt4,qtopia和qtopia4(注qt是我待会根据qt4复制并修改得来的)。通过cat或vi查看qt4,与文档中提到的setqt4env向对比,发现这两个文件几乎是一样的。当初害得我到处找,还经常在执行setqt4env时报错。
先看下qt4的内容,下图红色方框的内容我将会进行修改。
再看下我从qt4复制过来的qt(执行#cp qt4 qt)
在第一个红框中添加了一条路径:/usr/local/Trolltech/QtEmbedded-4.7.0-arm/lib,这个是qt库的路径,这样qt程序在任何地方都可以执行了,并不一定要在这个lib下了。没有这条,就会报错,说找不到libGui什么库之类的。
第二个红框的修改是参考链接http://blog.chinaunix.net/uid-26663150-id-3245971.html这个来进行的,这个框子的命令执行时当前面什么都执行完成后,cd进入到它的一demo目录下,然后执行其中一个例程fluidlauncher
上述两项修改完成后,把QtCreator生成的工程目录下的arm目录下可执行文件下载到开发板,运行就可以了。(注需要先按照文档说的在关机里面终止terminal,也就是关闭qtopia)
qt前面什么都不需要,qt可执行程序(2helloqt4)前面的./(点和斜杠)不能少。测试图中我输入的数据是通过usb口的键盘输入的,qte4.7.0没有虚拟键盘,我有实体键盘。哈哈