无论是在Windows下还是Linux下编译好的QT程序基本都要提供给其他人用,那么就涉及到了发布的问题,即如何在没有编译环境的机器上运行你编译好的程序。
往往程序不能运行都是环境(缺少动态库)不对,导致不能正常使用。
1.Windows发布
比如我新建了一个工程并生成了exe,如下图所示
如果发布的话建议编译成Release版本的Debug版本库非常大。
这时把这些东西直接拷贝到其他机器是不能够运行的,如下图所示。
这时用到了QT安装好后自带的命令windeployqt,打开cmd,输入windeployqt如下图所示
如需自动匹配动态库,需要在命令行中输入:
windeployqt //app.exe
如下图所示
再看看release目录,如下图所示
这样把这个目录中没有用的东西删掉,就可以打包发布了。
2.Linux
同理先生成一个执行程序,最好是Release版本,如下图所示
在没有编译环境的机器上会报没有xcb等错误。
下载开源的Linux-deployqt:https://github.com/probonopd/linuxdeployqt/releases
附上自己下载好的:https://download.csdn.net/download/xuebing1995/11387877
把下载的文件放入 /usr/local/bin 内,并执行如下命令使其可以运行
chmod 777 linuxdeployqt-continuous-x86_64.AppImage
如果没有配置QT的环境变量需要把qmake的路径添加到环境变量中
sudo vim /etc/profile
在文件末尾添加:
输入命令 linuxdeployqt /***/***/appName,如下图所示
这样把没有用的删掉也可以打包发布到其他没有编译环境的机器上运行啦。