在MeeGo handset 1.1开发环境[4][5]中,我们利用QtCreator工具生成了rpm包。我们去看linux的rpm包,对于某个软件包有两个rpm包,一个是*.rpm,一个是*.src.rpm,我们应当将源程序也进行打包,这样在代码管理上会好很多。此外,可能是习惯问题,如果可以脱离QtCreator,直接在linux的命令行中进行编译,打包,我觉得更加方便和自由。本次,我们将记录如何在命令行中将程序打成*.src.rpm和*.rpm包。
实际以前我们在moblin也探讨过这个问题,在MeeGo Handset SDK 1.1的环境中,利用rpmbuild,我们在作一次。我们还是利用rpmbuild的缺省目录~/rpmbuild。下面是相关的步骤。
步骤一:建立需打包的project小例子
利用mad建立我们的project,我们可以现查看一下mad可以创建那些类型的project,然后根据需要选择创建。
$ mad pscreate -l
TEMPLATE NAME TYPE DESCRIPTION
lib-simple lib Simple example for C/C++ library
python python Simple example for Python (Qt) application
qt-empty prog Empty project for Qt application
qt-lib-simple lib Simple example for Qt library
qt-simple qtprog Simple example for Qt application
simple prog Simple example for C/C++ application
$ mad -t meego-handset-ia32-1.1 pscreate -t qt-simple test-rpm-0.0.1
请注意这个project的名字,我们将version信息也加入,这也是rpm包命名的标准方式。在后面我们也会看到spec文件中对文件夹的缺省命名,提供version信息,可以是我们更好的管理不同版本当然源代码,同时也方便打patch。
$ cd test-rpm-0.0.1/
$ mad -t meego-handset-ia32-1.1 qmake
通过这一步,可以生成Makefile,打开Makefile文件,我们做一些小修改,将涉及绝对路径的修改为相对路径,例如该文件夹的绝对路径在/workspace/meego/test/qt/test-rpm-0.0.1,我们可以查询这个路径,或者查询install,是在target中install desktop文件时会写成绝对路径。因为我们将利用rpmbuild的缺省目录,而且不同环境,安装的绝对路径不一样,所以需要修改。
这是我们可以直接通过make命令来进行编译。由于是实验打包的情况,我只在*.desktop文件中修改了图标的描述名字,并将源文件中的Hello, World改为其他文字。
步骤二:打包
当我们确保编译没有出现问题,包括在target上调测后也没有问题,我们准备封装发布的rpm和src.rpm。采用make clean将所有编译内容清除后,将test-rpm-0.0.1/打包为test-rpm-0.0.1.tar.gz。接着我们编写rpm的spec文件,可以直接利用之前QtCreator编写的其他spec文件过来修改,spec文件可以参考:
下面是这个例子的spec文件test-rpm.spec的内容
$ cat test-rpm.spec
# no post install
#%define __os_install_post %{nil}
# no strip
#%define __strip /bin/true
# no debug package
#%define debug_package %{nil}
# disable automatic dependency processing
#AutoReqProv: no
Name: test-rpm
Version: 0.0.1
Release: 1
License: GPL
Summary: Wei: Test for Meego handset 1.1 *.src.rpm and *.rpm
#Url: <insert url tag>
Group: Qt/Qt Mobility
Source0: %{name}-%{version}.tar.gz
#BuildRequires: pkgconfig(QtCore)
#BuildRequires: libqt-devel
%description
Wei test for Meego handset SDK 1.1 for package *.src.rpm and *.rpm.
%prep
%setup -q
%build
# Add here commands to configure the package.
#%qmake
#qmake -makefile -nocache QMAKE_STRIP=: PREFIX=%{_prefix}
# Add here commands to compile the package.
#make %{?jobs:-j%jobs}
#make %{?_smp_mflags}
make
%install
# Add here commands to install the package.
#%qmake_install
make install INSTALL_ROOT=%{buildroot}
%files
%defattr(-,root,root,-)
%{_prefix}/*
我们将在rmpbuild的标准目录下来进行,可以直接执行rpmbuild -ba test-rpm.spec,运行会报错,但是会生成正确的缺省路径~/rpmbuild,在该目录下会有以下的目录BUILD/ BUILDROOT/ RPMS/ SOURCES/ SPECS/ SRPMS/,我们将test-、rpm.0.0.1.tar.gz文件copy到SOURCES目录下,将test-rpm.spec文件copy到SPECS/下,进入~/rpmbuild/SPECS目录,执行命令rpmbuild -ba test-rpm.spec,则源文件解压后将存放在BUILD/路径下,在目标机的解压后的文件将在BUILDROOT/下,test-rpm-0.0.1-1.i386.rpm将存放在RPMS/i386/路径下,源文件rpm包test-rpm-0.0.1-1.src.rpm位于SRPMS/。
步骤三:检验
我们打开模拟器或者目标机,通过网络,将rpm传递上去
$ scp -P 6666 /home/wei/rpmbuild/RPMS/i386/test-rpm-0.0.1-1.i386.rpm meego@localhost:/home/meego
源文件rpm包用于归档保存,我们删除~/rpmbuild,然后在本地机器进行rpm -ivh xxxx.src.rpm后,我们看到在~/rpmbuild中相关源代码的恢复。我们通过ssh登录模拟器,在/home/meego下,以sudo的身份对rpm进行安装rpm -ivh test-rpm-0.0.1-1.i386.rpm,删除时只需要rpm -e test-rpm即可。安装之后我们可以看到桌面如下左图,点击图片,如右图:
相关链接:我的MeeGo/Moblin相关文章
分享到:
相关推荐
6. meego-sdk-i586-toolchain-1.1-w32_i686.tar:MeeGo SDK的交叉编译工具链。 7. qemu-meego.tar:与MeeGo相关的QEMU文件。 8. qt-tools-4.7.0-m0.20.32-w32.tar:Qt开发工具。 在线安装文件可以通过以下链接获取...
- **Eclipse**:集成开发环境,支持Android开发的插件ADT。 **2. 环境搭建步骤** 1. 下载并安装Android SDK:访问developer.android.com获取最新版本的SDK。 2. 安装ADT插件:在Eclipse中选择“Help” > ...
该联盟旨在支持Google发布的Android手机操作系统及相关应用软件的开发,推动开源移动系统的普及和发展。 **目标与愿景:** 开放手机联盟的目标是打造一个开放式的移动设备平台,以促进创新、提高用户体验,并为...
### Android开发教程知识点详解 #### 一、Android及其重要性 **Android** 是一个基于Linux内核的操作系统,由Google公司主导开发,并于2007年11月5日正式对外发布。它作为当前最主流的移动操作系统之一,广泛应用...
QEMU在Windows上支持的MeeGo系统版本包括meego-handset-ia32-w32-1.1和meego-netbook-ia32-w32-1.1,同时支持的runtime有meego-handset-ia32-w32-qemu-1.1.20101031.2201-sda-runtime和meego-netbook-ia32-w32-qemu-...
开发Android应用需要安装Android Studio,这是Google官方提供的集成开发环境(IDE)。开发环境包括: 1. **Android SDK**:包含了Android系统的各种版本的API库和工具。 2. **模拟器**:用于在没有物理设备的情况下...
本研究关注的是由Google与开放手机联盟(Open Handset Alliance, OHA)合作开发的Android手机平台的用户界面管理系统。该系统旨在帮助开发者通过简单的拖拽方式快速构建所需的图形用户界面,并将其保存为XML格式的...
《NFC Handset Test Book V10.0 V11.0》是针对NFC(Near Field Communication)技术的一份官方测试文档,包含了V10.0和V11.0两个版本。NFC是一种短距离无线通信技术,允许电子设备在近距离内交换数据,通常用于移动...
- **强大的开发资源:** 提供了大量的开发工具和文档,帮助开发者快速上手并进行高效开发。 #### 二、Android的开发工作 **2.1 移植开发手机系统** 移植开发是指将Android系统适配到新的硬件平台上,通常涉及对内核...
- **Android SDK**:以二进制形式提供,用于开发Java应用程序,支持Linux和Windows环境。 - **完全源代码**:完整的源代码版本,适合于Linux环境下进行开发。 - **不同版本的SDK**: - android-sdk-linux_x86-...
2. **安装Android Studio**:这是官方推荐的集成开发环境,集成了编译、调试、发布等功能。 3. **配置Android SDK**:安装所需的Android SDK版本及其组件。 4. **创建Android项目**:使用Android Studio创建新的...
3. **快速开发与部署**:利用Qt和Web运行时的应用开发环境,开发者可以轻松地创建跨平台应用,加速产品的上市时间。 4. **全面的工具集**:Meego提供了一系列开发工具,如Qt Creator和Web应用开发插件,帮助开发者...
#### 二、安装Android开发环境 - **安装步骤**: 1. **下载和安装Java Development Kit (JDK)**: 开发Android应用首先需要安装JDK,确保系统满足最低版本要求。 2. **安装Android Studio**: Android Studio是官方...
其中,MeeGo作为一款由英特尔和诺基亚联合开发的操作系统,因其良好的性能及丰富的功能而受到不少用户的青睐。本文将围绕如何制作一个Meego镜像进行详细介绍,帮助开发者更好地理解和掌握这一过程。 #### 一、MeeGo...
### Android开发环境配置详解 #### 一、Android平台概述 Android平台是由Google公司在2007年11月5日推出的,基于Linux内核的移动操作系统。它由操作系统、中间件、用户界面和应用软件四大部分组成,形成了一个开放...