栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

统信操作系统《扫雷》软件构建与发布(Qt+deb)

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

统信操作系统《扫雷》软件构建与发布(Qt+deb)

目录

一、构建deb包

1.1 control文件

1.2 compat文件

1.3 changelog

1.4 rules

二、构建deb包常用命令

构建

清理打包临时文件

新建版本

安装编译依赖

问题一:dpkg-checkbuilddeps: error: Unmet build dependencies: build-essential:native


统信操作系统有自己的商城,因此我们所说的发布其实就是将软件构建成deb包,然后将其上传到应用商店后台,通过审核后用户就能够在应用商店中下载软件了。

软件开发完成后如何打包成deb包也是软件发布的关键步骤。

一、构建deb包

构建命令如下:

在软件的主目录中构建debian名称的文件目录,debian文件目录的名字是固定的,因此不要改动。在debian目录中我们最少需要构建一下几个文件。以下文件名称都是固定的。

文件名称作用是否必要
control 指明与构建deb包相关的信息,例如运行依赖关系,编译依赖关系,构建的deb包名称,维护者名称,构建包的版本,构建包的名称,构建包的描述等。必要
compat 定义兼容级别,具体作用不详,反正我就写9必要
changelog版本日志,可以通过dch命令添加。必要
rules编译命令,在构建项目时使用该命令编译构建。必要

1.1 control 文件

1.1 control文件

《扫雷》control文件样例

Source: minesweeper
Section: utils
Priority: optional
Maintainer: arv000 
Build-Depends:
 debhelper (>= 11),
 cmake,


Standards-Version: 1.0.0
Package: minesweeper
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends},
Description: 扫雷游戏.
    扫雷游戏.

Package:指该软件包的名字。如果你的软件包名称有两个词,用一个连字符(-)把它们连起来。软件包的名称只能有小写的英文字母,数字(不管你相信不相信)以及"+"和"-"。

Version:程序的版本。确保这里的值不包括连字符。

Section:列出了你的软件属于的类别,可能的值包括admin(管理),games(游戏),gnome,kde,mail(电子邮件),misc(杂项)<译者注:misc是miscellaneous的简称>,net(网络),sound(声音),text(文本),utils(实用工具)和web(万维网)。

Priority:声明这个包的优先级(大部分的时候使用optional(可选的))。

Architecture:是该程序可运行的CPU架构(可能的值为i386,amd64和powerpc)<译者注:此处虽然是专有名词,但是由于linux是大小写敏感的,所以文件内还是应该小写>。any表示任意架构

Eseential:指该软件包是否是必须的(大部分的时候不是)。

Depends:意味着要运行这个程序必须拥有的程序或者库。

Build-Depends:编译程序时需要的依赖,注意和Depends的区别。编译前我们可能不知道该软件的依赖关系。如果已经配置号的编译依赖。我们可以使用以下命令自动安装依赖(太方便了)。

sudo apt build-deb .

Maintainer:就是你(写上你的名字,后面的方括号"<>"里留下你的电子邮件地址)。

Conflicts:表示跟这个程序冲突的软件。

Replaces:表明哪些软件包将被这个程序取代。

Description:显示你的描述。

1.2 compat文件

1.3 changelog

文件样例如下:

minesweeper (1.0.0) unstable; urgency=medium

  * Non-maintainer upload.
  * 

 -- arv000   Fri, 15 Apr 2022 16:34:51 +0800

在工程目录使用dch命令可以自动新增changelog的记录。

1.4 rules

rules⽂件,实际上是⼀个Makefile格式的脚本⽂件, 第⼀⾏就是:#!/usr/bin/make -f。默认的都有: %: dh $@ 其中的百分号意味
着“任何 targets”, 它会以 target 名称作参数调⽤单个程序 dh。 dh 命令是⼀个包装脚本,它会根据参数执⾏妥当的 dh_* 程序序列。
⼀般的tar包源码都有configure, 这时可以执⾏dh_auto_config进⾏config,它实际上就是直接调⽤./configure。 然后执⾏
dh_auto_build编译。
rules⽂件⼀般会包含很多override_,这时对默认target的替换。

QT5

#!/usr/bin/make -f

export QT_SELECT=qt5
include /usr/share/dpkg/default.mk

%:
	dh $@

CMakeList

#!/usr/bin/make -f

override_dh_auto_configure:
	dh_auto_configure -- 
    -DCMAKE_BUILD_TYPE=Release 
    -DCMAKE_SAFETYTEST_ARG="CMAKE_SAFETYTEST_ARG_OFF" 
    -DAPP_VERSION=$(DEB_VERSION_UPSTREAM) -DVERSION=$(DEB_VERSION_UPSTREAM)
%:
	dh $@ --parallel

override_dh_shlibdeps:
	dh_shlibdeps --dpkg-shlibdeps-params=--ignore-missing-info

二、构建deb包常用命令

构建
dpkg-buildpakeage

构建成功后会生成beb包

清理打包临时文件
dh clean

新建版本
dch

安装编译依赖
sudo apt build-dep .

问题一:dpkg-checkbuilddeps: error: Unmet build dependencies: build-essential:native

解决方法

sudo apt-get install build-essential
三、软件发布

登录https://www.chinauos.com/

 

 

 按照要求上传

 通过审核后就可以在应用商店看到我们的应用了

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/974634.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号