本帖最后由 暗影 于 2010-7-25 12:01 编辑
原文链接http://www.meegochinadev.com/viewthread.php?tid=68&extra=page%3D1
简介
本文将教你怎样将你写的Qt项目打包并安装在MeeGo 设备上运行。这里通过Qt示例中一个名叫"textures"的OpenGL项目来为例来讲述。这个原始项目是一个没有图 标不能从MeeGo UI 启动的Qt例子,我们将使它看起来更像一个独立的应用程序,可以从MeeGo 应用程序面板中直接启动并且以rpm包格式安装在MeeGo设备上。
前期准备
准备材料是一个包含在qt-example包中的Qt demo例子,具体位置在 /usr/lib/qt4/example/opengl/textures。
将它拷贝到你的$workspace目录下做为一个独立的项目。既可以是MeeGo SDK chroot下也可以是安装qt-examples的linux机器上。代码:
为程序添加图标,此处我们使用例子中的项目图标作为我们的应用程序图标。
添加一个桌面文件,可以使我们在MeeGo应用程序面板中找到我们的程序。
内容是:
编辑textures.pro文件,去除一些用于Qt Example中的定义并且加入图标、桌面安装。
修改后的内容如下:
如果你想在打包之前测试下,你可以在MeeGo SDK chroot下构建调试,请参考:第一个MeeGo 程序:Hello world!
清理项目,创建源码压缩包,准备打包。
创建spec文件
MeeGo推荐使用Spectacle工具创建MeeGo spec文件或者将一个存在的spec文件转换成MeeGo spec文件。
安装Spectacle
在MeeGo 平台 或 MeeGo chroot 环境,可以直接安装。
如果您是代理,那么在运行上面命令之前需要设置:
在Linux主机上安装,可以参考:Spectacle Installation
创建 YAML 包元数据文件
Spectacle使用包元数据文件作为输入来产生MeeGo spec 文件,这个元数据文件是YAML格式的,语法参见:Syntax of Spectacle YAML .
我们在$workspace/folder下创建一个textures.yaml文件
内容如下:
YAML文件也可以从已存在的spec文件创建
Spectacle详细用法请参考:Spectacle Usage
从YAML文件生成spec文件
使用YAML文件,很容易生成spec 文件:
生成的$workspace/textures.spec 文件内容是:
修改textures.spec文件添加qt 建构信息:"build pre"和"install post" 段。
在MeeGo SDK chroot 下构建rpm
对于应用程序开发者来说,他们可以在MeeGo SDK chroot环境下直接创建包,通过rpmbuild是非常容易的。
首先进入chroot环境。
安装rpmbuild和MeeGo rpm 构建配置
拷贝源码和spec文件到正确的地方
生成rpm包
这个rpm包将生成在:
更多的rpmbuild使用参拷:rpmbuild
不用chroot 或 OBS 构建 rpm包
对于一些构建或release的人来说,他们可能想去构建不需要MeeGo SDK chroot环境的rpm包,那么步骤如下:
Linux
在Linux下,有一个工具叫“build”可以直接从spec文件创建rpm包。
@在你的主机上安装build。
@利用build工具和spec文件创建rpm包
这个包将被生成在/var/tmp/build-root/home/abuild/rpmbuild/RPMS/ 和 /var/tmp/build-root/home/abuild/rpmbuild/SRPMS/目录下,你可以配置你的http_proxy来确保 repo成功。
验证rpm包
rpm包可以被直接安装在MeeGo设备上或MeeGo SDK模拟程序中,拷贝rpm到目标设备或模拟器上并运行。
此时你可以在applications下的Programming中找到QtDemoTextures,它已经被列入其中了。
源文:http://wiki.meego.com/Packaging/Tutorial