主题 : mini2440上qtopia应用程序开发步骤(arm-qtopia版本) 复制链接 | 浏览器收藏 | 打印
创新改变世界,技术驱动中国
级别: 论坛版主
UID: 7752
精华: 2
发帖: 55
金钱: 570 两
威望: 276 点
贡献值: 20 点
综合积分: 150 分
注册时间: 2009-07-27
最后登录: 2010-03-30
楼主  发表于: 2009-09-13 11:12

 mini2440上qtopia应用程序开发步骤(arm-qtopia版本)

管理提醒: 本帖被 hxfirefox 执行置顶操作(2009-09-15)
在完成x86下的qtopia的应用程序设计之后,就可以着手在arm上进行移植了,下面我将介绍如何在arm平台上开发qtopia应用程序,所有的编译工作将在arm-qtopia文件夹下完成。同样地,我也会介绍一种一般性移植方法,和一种较快捷,简便的方法。
主机环境:RedHat9
编译工具:arm-linux-gcc-4.3.2
1、  进入arm-qtopia,创建工程文件夹
2、  设置开发环境,执行命令 # source qtopia-2.2.0-FriendlyARM/setQpeEnv
3、创建工程 # progen -t app -o (工程名).pro
4、进入qtopia-2.2.0-FriendlyARM/qt2/bin,启动Qt designer # ./designer,即可以进行图形界面的设计,
5、将.ui文件存放在工程文件夹中
6、生成.h.cpp文件,运用.ui文件,# uic -o *.h *.ui # uic -o *.cpp -impl *.h *.ui
7、在.h.cpp文件中添加需要的代码
8、编写main.cpp
9、修改.pro文件,为其中的HEADERS= SOURCES= TARGET=添加文件,HEADERS指头文件,若有多个用空格分隔SOURCES为源文件,TARGET为目标文件,即最后生成的可执行文件名
10、生成Makefile
(1)修改tmake/lib/qws/linux-arm-g++/tmake.confTMAKE_LINK=arm-linux-gccTMAKE_SHLIB=arm-linux-gcc改为=arm-linux-g++
(2)生成Makefile # tmake -o Makefile *.pro,如果是从x86下移植,请将x86下生成的Makefile删除
(3)修改Makefile LIBS=添加 –luuid -lqtopia2 -lqtopia –lqpe
11、生成可执行文件 # make
12、编写一个.desktop,格式如下:
[Desktop Entry]

comment=A Hello Program  //说明
Exec=hello   //可执行程序文件名
Icon=Hello    //图标名 任意
Type=Application  //程序类型 不变
Name=hello  //可执行程序文件名

13、将可执行文件拷贝至root_qtopia/opt/Qtopia/bin下,将.desktop拷贝至root_qtopia/opt/Qtopia/apps下(我采用的是nfs挂载方式)
以上就是在arm上开发qtopia应用程序的一般步骤,下面介绍较为简便的步骤:
1、进入arm-qtopia,建立工程目录
2、将编写好的.cpp.h拷贝至工程目录
3、产生工程文件 执行命令 # qmake -project
4、修改.pro工程文件 在文件最后架上TARGET=可执行文件名
5、拷贝arm-qtopia中例程hello中的脚本文件build至工程目录,并执行 # ./build,该脚本已经将设置环境变量调用相应库生成Makefile,生成可执行文件写入其中。
6、修改Makefile,为LIBS=添加 –luuid -lqtopia2 -lqtopia –lqpe
7、编写一个.desktop,格式如下:
[Desktop Entry]

comment=A Hello Program  //说明
Exec=hello   //可执行程序文件名
Icon=Hello    //图标名 任意
Type=Application  //程序类型 不变
Name=hello  //可执行程序文件名

8、将可执行文件拷贝至root_qtopia/opt/Qtopia/bin下,将.desktop拷贝至root_qtopia/opt/Qtopia/apps下(我采用的是nfs挂载方式)
在启动mini2440之后,就可以在Application页面中看到编写的应用程序的图标,点击运行就可以了。
最后还有一点小小的提醒,当你运行你所编写的程序的时候,你也许会发现,你的图形界面和Qtopia的整体风格不一致,特别是在标题栏上,如果你想统一风格,那么请认真参照FriendlyARM所提供的hello例程中的程序编写方法,尤其是main.cpp文件,修改你的程序,这样你就可以在mini2440上看到和其他程序一致的图形界面风格了。
[ 此帖被hxfirefox在2009-09-15 07:51重新编辑 ]
级别: 新手上路
UID: 7932
精华: 0
发帖: 6
金钱: 60 两
威望: 30 点
贡献值: 0 点
综合积分: 12 分
注册时间: 2009-08-03
最后登录: 2009-09-21
1楼  发表于: 2009-09-14 10:10
听楼主的一席话,我也有信心了!
级别: 新手上路
UID: 8919
精华: 0
发帖: 9
金钱: 90 两
威望: 45 点
贡献值: 0 点
综合积分: 18 分
注册时间: 2009-09-10
最后登录: 2009-10-21
2楼  发表于: 2009-09-21 22:08
学习学习
勉強勉強
study  study
级别: 新手上路
UID: 9360
精华: 0
发帖: 11
金钱: 75 两
威望: 27 点
贡献值: 0 点
综合积分: 22 分
注册时间: 2009-09-26
最后登录: 2011-08-30
3楼  发表于: 2009-10-01 17:05
非常谢谢楼主 解决了我很大的困惑!
级别: 新手上路
UID: 9521
精华: 0
发帖: 8
金钱: 80 两
威望: 40 点
贡献值: 0 点
综合积分: 16 分
注册时间: 2009-10-03
最后登录: 2010-05-19
4楼  发表于: 2009-10-03 12:38
不顶不行啊~~~
级别: 新手上路
UID: 1347
精华: 0
发帖: 19
金钱: 190 两
威望: 69 点
贡献值: 0 点
综合积分: 38 分
注册时间: 2008-08-20
最后登录: 2017-09-13
5楼  发表于: 2009-10-31 16:29
请问楼主,在执行make这步的时候,报错cannot find -lqte,是出了什么问题?
级别: 新手上路
UID: 10345
精华: 0
发帖: 12
金钱: 120 两
威望: 60 点
贡献值: 0 点
综合积分: 24 分
注册时间: 2009-11-01
最后登录: 2009-12-05
6楼  发表于: 2009-11-05 16:18
级别: 新手上路
UID: 8570
精华: 0
发帖: 17
金钱: 90 两
威望: 21 点
贡献值: 0 点
综合积分: 34 分
注册时间: 2009-08-28
最后登录: 2017-09-13
7楼  发表于: 2009-11-30 17:05
先顶一下吧.
级别: 新手上路
UID: 4135
精华: 0
发帖: 18
金钱: 135 两
威望: 59 点
贡献值: 0 点
综合积分: 36 分
注册时间: 2009-02-27
最后登录: 2011-06-22
8楼  发表于: 2009-12-07 13:42
不用那么复杂
级别: 新手上路
UID: 4135
精华: 0
发帖: 18
金钱: 135 两
威望: 59 点
贡献值: 0 点
综合积分: 36 分
注册时间: 2009-02-27
最后登录: 2011-06-22
9楼  发表于: 2009-12-07 13:56
先设置环境
source setQt2Env
source setDqtEnv
source setQteEnv
source setQpeEnv
要是嫌麻烦就到QT目录下ls *Env >>setenv然后编辑成上面的模样在打source setenv
export QMAKESPEC=$QPEDIR/mkspecs/qws/linux-arm-g++
然后建一个项目目录mkdir /opt/demo
cd /opt/demo
designer demo.ui设计完之后保存一下退出
vi main.cpp 编辑成:
#include <qtopia/qpeapplication.h>
#include "demo.h"
QTOPIA_ADD_APPLICATION("demo",From1)
QTOPIA_MAIN
然后
qmake -project
echo TARGET=demo >>*.pro
qmake
在Makefile里面的-qte后面加上-lqpe
make
就生成了应用程序了 把应用程序放到root_qtopia/opt/Qtopia/bin/下
在把Qtopia/apps/applications下的随便一个desktop文件复制一下 例如:
cp da*.desktop demo.desktop编辑一下

cd Qtopia/pics/
cp da*.png demo.png
OK可以了