7 应用开发
7.1 QT5 开发
7.1.1 安装QT CREATOR
本次安装的QT CREATOR 为apt源上的
sudo apt-get install qtcreator
7.1.2 配置ARM 平台的Qt Creator Kits
安装成功后打开QT CREATOR, 打开Qt Creator 界面,找到Tools (工具)》Options (选项)

切换到Qt Versions, 添加qmake

切换到Compilers,添加交叉编译工具




切换到Debuggers,添加调试工具

最后切换到Kits,添加如下指出的选项,即可完成ARM 平台的Qt Creator Kits配置

7.1.3 验证ARM 平台的Qt 编译
打开QT源码中自带的examples文件夹中的examples.pro 项目文件

选择之前添加的ARM Kit

进入工程界面后点击build all 即可编译工程并生成 ARM LINUX 平台的 ELF 可执行文件

7.2 应用打包
dpkg 是"Debian Packager "的简写。为 "Debian" 专门开发的套件管理系统,方便软件的安装、更新及移除。所有源自"Debian"的"Linux "发行版都使用 "dpkg",例如 "Ubuntu"、"Knoppix "等。
dpkg是Debian软件包管理器的基础,它被伊恩·默多克创建于1993年。dpkg与RPM十分相似,同样被用于安装、卸载和供给.deb软件包相关的信息。
dpkg本身是一个底层的工具。上层的工具,如APT,被用于从远程获取软件包以及处理复杂的软件包关系。 "dpkg"是"Debian Package"的简写。
7.2.1 deb包的目录结构
deb包本身有三部分组成
| 组成 | 详细 |
|---|---|
| 数据包 | 包含实际安装的程序数据,文件名为“data.tar.XXX” |
| 安装信息及控制包 | 包含deb的安装说明,标识,脚本等,文件名为“control.tar.gz” |
| 二进制数据 | 包含文件头等信息,需要特殊软件才能查看 |
deb包的目录结构如下所示
|----DEBIAN
|-------control
|-------postinst(postinstallation)
|-------postrm(postremove)
|-------preinst(preinstallation)
|-------prerm(preremove)
|-------copyright(版权)
|-------changlog(修订记录)
|-------conffiles
|----usr
|----...
control文件
主要描述软件包的名称(Package),版本(Version),Installed-Size(大小),Maintainer(打包人和联系方式)以及描述(Description)等,是deb包必须具备的描述性文件,以便于软件的安装管理和索引。
| 字段 | 用途 | 例子/其他 |
|---|---|---|
| Package | 程序名称 | 中间不能有空格 |
| Version | 软件版本 | |
| Description | 程序说明 | |
| Section | 软件类别 | utils, net, mail, text, x11 |
| Priority | 软件对于系统的重要程度 | required, standard, optional, extra等; |
| Essential | 是否是系统最基本的软件包 | yes/no,若为yes,则不允许卸载(除非强制性卸载) |
| Architecture | 软件所支持的平台架构 | i386, amd64, m68k, sparc, alpha, powerpc等 |
| Source | 软件包的源代码名称 | |
| Depends | 软件所依赖的其他软件包和库文件 | 若依赖多个软件包和库文件,采用逗号隔开 |
| Pre-Depends | 软件安装前必须安装、配置依赖性的软件包和库文件 | |
| Recommends | 推荐安装的其他软件包和库文件 | |
| Suggests | 建议安装的其他软件包和库文件 |
preinst文件
在Deb包文件解包之前(即软件安装前),将会运行该脚本。可以停止作用于待升级软件包的服务,直到软件包安装或升级完成。
postinst文件
负责完成安装包时的配置工作。如新安装或升级的软件重启服务。软件安装完后,执行该Shell脚本,一般用来配置软件执行环境,必须以“#!/bin/sh”为首行。
prerm 文件
该脚本负责停止与软件包相关联的daemon服务。它在删除软件包关联文件之前执行。
postrm文件
负责修改软件包链接或文件关联,或删除由它创建的文件。软件卸载后,执行该Shell脚本,一般作为清理收尾工作,必须以“#!/bin/sh”为首行
7.2.2 制作deb包流程
新建文件夹,假设名字为mydeb 在mydeb内新建一个DEBIAN文件夹,此文件夹内存放控制信息 在DEBIAN里新建一个文本文档, 名为control, 编码为utf-8, 内容如下所示:
Package: MagicWork
Version: 4.0.0
Architecture: arm
Section: utils
Priority: optional
Maintainer: Co-Trust
Homepage: http://www.co-trust.com.
注意版本号Version需要根据软件更新升级做修改
然后我们创建对应的二进制包安装完成后的路径信息放置在DEBIAN的同级目录下,也就是把当前的目录当成根(“/”)目录,制作完成后安装时,当前目录下除了DEBIAN目录的其他目录都会被默认安装到系统的“/”目录下。
.
├── DEBIAN
│ └── control
└── usr
├── bin
│ ├── MagicWork
│ └── NightWatchMan
└── lib
├── libHMIDevice.so -> libHMIDevice.so.1.0.0
├── libHMIDevice.so.1 -> libHMIDevice.so.1.0.0
├── libHMIDevice.so.1.0 -> libHMIDevice.so.1.0.0
├── libHMIDevice.so.1.0.0
├── libHMIService.so -> libHMIService.so.1.0.0
├── libHMIService.so.1 -> libHMIService.so.1.0.0
├── libHMIService.so.1.0 -> libHMIService.so.1.0.0
├── libHMIService.so.1.0.0
├── libkwmf.a
├── libprinter.so -> libprinter.so.1.0.0
├── libprinter.so.1 -> libprinter.so.1.0.0
├── libprinter.so.1.0 -> libprinter.so.1.0.0
├── libprinter.so.1.0.0
├── libWindingMachineModule.so -> libWindingMachineModule.so.1.0.0
├── libWindingMachineModule.so.1 -> libWindingMachineModule.so.1.0.0
├── libWindingMachineModule.so.1.0 -> libWindingMachineModule.so.1.0.0
└── libWindingMachineModule.so.1.0.0
当放置文件完成后,使用dpkg进行打包生成deb格式的安装包
dpkg -b mydeb/ MagicWork.deb
7.2.3 dpkg 常用命令
- 打包 dpkg -b . xxx 第一个参数为将要打包的目录名(.表示当前目录),第二个参数为生成包的名称
dpkg -b . xxx.deb
- 安装(解包并配置) dpkg -i|--install <.deb file name>
dpkg -i xxx.deb
- 卸载 dpkg -r|--remove ,删除包,但保留配置文件
dpkg -r xxx