linux 系统下有关的 好用Qt 发布工具 的使用 和自动化

 

linuxdeployqt 地址

https://github.com/probonopd/linuxdeployqt

 

使用方法参考

https://zhuanlan.zhihu.com/p/49896691

Ubuntu Qt Deploy

记录下 Qt 在Ubuntu 系统下的 部署 发布

在 windows 系统上, Qt 自带了一个 windeployqt 的程序 

Qt for Windows - Deployment​doc.qt.io图标

Ubuntu 系统下 Qt 官方 却没有提供一个工具,只是长篇累牍的说了下方法

Qt for Linux/X11 - Deployment​doc.qt.io

但其实 github 上有个很好用的工具

probonopd/linuxdeployqt​github.com图标

用法也很简单

先从 probonopd/linuxdeployqt

下载 最新的打包工具,下载后重命名为 deployqt

然后,如果你也是用的 Ubuntu 16.04

qmake 存放路径也是 /home/wu/Qt5.10.1/5.10.1/gcc_64/bin/qmake

程序名也是 UbuntuApp 的话,cd 到你 deployqt 的路径

执行 ./deployqt UbuntuApp -qmake="/home/wu/Qt5.10.1/5.10.1/gcc_64/bin/qmake"

就可以自动打包程序了

但是要注意的一点,最好使用非 Linux FHS (文件系统层次结构标准)

就是创建文件夹的时候,结构如下

.
├── build
├── CI
│   ├── build.sh
│   ├── exe
├── include
│   ├── bchartdir.h
├── lib
│   ├── libchartdir.so
│   ├── libchartdir.so.6.0
│   └── libchartdir.so.6.0.0
├── src
│   ├── ubuntuapp.pro
│   ├── main.cpp
│   ├── mainwindow.cpp
│   ├── mainwindow.h
└── tool
    └── deployqt

build.sh 里的内容如下

# /bin/bash
cd /home/wu/workspace/ubuntuapp/CI/exe
cp /home/wu/workspace/ubuntuapp/tool/deployqt ./
cd /home/wu/workspace/ubuntuapp/src
/home/wu/Qt5.10.1/5.10.1/gcc_64/bin/qmake /home/wu/workspace/ubuntuapp/src/ubuntuapp.pro -o /home/wu/workspace/ubuntuapp/build -spec linux-g++ CONFIG+=debug
make clean -C /home/wu/workspace/ubuntuapp/build
make -C /home/wu/workspace/ubuntuapp/build
cd /home/wu/workspace/ubuntuapp/CI/exe
cp /home/wu/workspace/ubuntuapp/build/UbuntuApp ./
./deployqt UbuntuApp -qmake="/home/wu/Qt5.10.1/5.10.1/gcc_64/bin/qmake"
rm deployqt

写完后,添加权限

sudo chmod 777 build.sh

ubuntuapp.pro 里的内容如下

QT += core gui
TARGET = UbuntuApp
TEMPLATE = app
CONFIG += C++11
DEFINES += QT_DEPRECATED_WARNINGS
SOURCES += main.cpp \
    mainwindow.cpp
HEADERS += mainwindow.h
INCLUDEPATH += ../include
LIBS += -L../lib -lchartdir
unix:MOC_DIR = ../build/moc
unix:OBJECTS_DIR = ../build/obj

这样,执行完 build.sh 后,就能在 exe 文件夹里得到 一些文件和文件夹

里面的 AppRun 的超链接可以双击后 打开 UbuntuApp 程序

然后,把 exe 文件夹改个名字,压缩成 zip 格式,就可以拷贝到其他机器上用了

编辑于 2018-11-15