Qt Deploy Under linux Platform (linux 系统下有关的 好用Qt 发布工具 的使用 和自动化)
Posted on 2020-11-05 17:23 不断学习中渐渐不彷徨 阅读(246) 评论(0) 收藏 举报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 - DeploymentUbuntu 系统下 Qt 官方 却没有提供一个工具,只是长篇累牍的说了下方法
Qt for Linux/X11 - Deployment但其实 github 上有个很好用的工具
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 格式,就可以拷贝到其他机器上用了