QT Windows及Linux下打包发布

无论是在Windows下还是Linux下编译好的QT程序基本都要提供给其他人用,那么就涉及到了发布的问题,即如何在没有编译环境的机器上运行你编译好的程序。

往往程序不能运行都是环境(缺少动态库)不对,导致不能正常使用。

1.Windows发布

比如我新建了一个工程并生成了exe,如下图所示
QT Windows及Linux下打包发布_第1张图片
如果发布的话建议编译成Release版本的Debug版本库非常大。
这时把这些东西直接拷贝到其他机器是不能够运行的,如下图所示。
QT Windows及Linux下打包发布_第2张图片
这时用到了QT安装好后自带的命令windeployqt,打开cmd,输入windeployqt如下图所示
QT Windows及Linux下打包发布_第3张图片
如需自动匹配动态库,需要在命令行中输入:
windeployqt //app.exe
如下图所示
QT Windows及Linux下打包发布_第4张图片
再看看release目录,如下图所示
QT Windows及Linux下打包发布_第5张图片
这样把这个目录中没有用的东西删掉,就可以打包发布了。

2.Linux

同理先生成一个执行程序,最好是Release版本,如下图所示
QT Windows及Linux下打包发布_第6张图片
在没有编译环境的机器上会报没有xcb等错误。
下载开源的Linux-deployqt:https://github.com/probonopd/linuxdeployqt/releases
附上自己下载好的:https://download.csdn.net/download/xuebing1995/11387877
QT Windows及Linux下打包发布_第7张图片
把下载的文件放入 /usr/local/bin 内,并执行如下命令使其可以运行

chmod 777 linuxdeployqt-continuous-x86_64.AppImage

如果没有配置QT的环境变量需要把qmake的路径添加到环境变量中
sudo vim /etc/profile

在文件末尾添加:
QT Windows及Linux下打包发布_第8张图片

输入命令 linuxdeployqt /***/***/appName,如下图所示
QT Windows及Linux下打包发布_第9张图片
这样把没有用的删掉也可以打包发布到其他没有编译环境的机器上运行啦。

你可能感兴趣的:(QT)