如何把一个Qt应用打包为一个snap应用--snapcraft scriptlets应用实例
来源:互联网 发布:成本管理数据分析 编辑:程序博客网 时间:2024/05/16 15:05
我们在先前的文章"如何把一个qmake的Ubuntu手机应用打包为一个snap应用"中体会了如何把一个qmake的项目打包为一个snap应用.在今天的教程中,我们利用Qt Creator来创建一个项目,并最终把我们的应用打包为一个snap项目.在打包的过程中,我们可以体会在snapcraft中的scriplets.
1)创建一个Qt Helloworld项目
首先,我们打开我们的Qt Creator:
这样我们就创建了一个最简单的一个helloworld应用.
2)创建snapcraft.yaml文件
我们在项目的根目录下,打入如下的命令:
$ snapcraft init上面的命令将会为我们在当前目录下生成一个叫做snap的目录(snapcraft version 2.26,之前的版本没有创建这个snap目录).
liuxg@liuxg:~/snappy/desktop/qtapp$ tree -L 3.├── main.cpp├── mainwindow.cpp├── mainwindow.h├── mainwindow.ui├── qtapp.pro├── qtapp.pro.user├── README.md└── snap └── snapcraft.yaml
snapcraft.yaml
name: qthello version: '0.1' summary: a demo for qt hello appdescription: | This is a qt app demograde: stable confinement: strict apps: qthello: command: desktop-launch $SNAP/opt/myapp/qtapp plugs: [home, unity7, x11]parts: project: plugin: qmake source: . qt-version: qt5 project-files: [qtapp.pro] install: | install -d $SNAPCRAFT_PART_INSTALL/opt/myapp install qtapp $SNAPCRAFT_PART_INSTALL/opt/myapp/qtapp integration: plugin: nil stage-packages: - libc6 - libstdc++6 - libc-bin after: [desktop-qt5]
在这里,我们必须指出的是:
install: | install -d $SNAPCRAFT_PART_INSTALL/opt/myapp install qtapp $SNAPCRAFT_PART_INSTALL/opt/myapp/qtapp
由于在原始的qtapp.pro文件中,并没有相应的代码让我们如何去安装我们的qtapp应用文件.我们在这里使用了上面的install来安装我们的应用.根据在Scriplets里的描述:
“install”The install scriptlet is triggered after the build step of a plugin.
这里的scripts将会在build之后自动被自动执行.它首先创建一个叫做myapp的目录,接着把我们在build目录中的二进制执行文件qtapp安装到myapp目录下.这样就最终形成了我们的snap包.
我们安装好qthello应用,并执行:
整个项目的源码在:https://github.com/liu-xiao-guo/qthello.更多阅读:https://github.com/liu-xiao-guo/wechat1
在这个snap应用中,我们把对Qt所有的库的依赖都打包到一个包里,这样我们最终的snap包的大小很大.如果开发者想减少这个Qt应用的大小的话,开发者可以参阅文章"利用ubuntu-app-platform提供的platform接口来减小Qt应用大小"来减小整个应用的大小.
1 0
- 如何把一个Qt应用打包为一个snap应用--snapcraft scriptlets应用实例
- 如何把HTML5应用打包为一个snap应用
- Snapcraft操作演示--教你如何snap一个应用
- 如何把一个qmake的Ubuntu手机应用打包为一个snap应用
- 如何把一个CMake的Ubuntu手机应用打包为一个snap应用
- 如何把一个website变为一个snap应用
- 如何打包nodejs snap应用
- 利用snapcraft为我们的Snappy Ubuntu应用打包
- 为我们的snap应用添加一个独特的图标
- 如何打包一个iOS应用
- WebCam snap应用实例
- 一个使用snap的Web应用
- 一个使用snap的Web应用
- 如何为我们的Snappy Ubuntu应用编译并打包Snap(1)
- 如何为我们的Snappy Ubuntu应用编译并打包Snap(2)
- 如何为我们的Snappy Ubuntu应用编译并打包Snap(1)
- 如何为我们的snap应用取别名alias
- 一个JMS应用实例
- Array 类型的迭代方法
- 如何将PDF的一个页面分割成两页
- 顺时针旋转矩阵
- 微信小程序开发:显示本地天气
- jdom 解析
- 如何把一个Qt应用打包为一个snap应用--snapcraft scriptlets应用实例
- 2017新起点
- Android硬件访问服务---APK编写
- Leet Code OJ 482. License Key Formatting [Difficulty: Medium]
- tar命令
- MAC 下Command not found以及环境配置问题
- web.xml的配置详解
- Quartz 在线Cron表达式
- iOS基础面试题收集