【教程】linux与windows环境下qt程序打包教程
一、演示环境
- qt5.14.2
二、Linux
2.1 关联依赖文件
2.1.1 下载打包工具
在Windows环境下可以使用 Qt Creator自带的官方工具进行打包,而Linux环境下没有官方工具,需要借助第三方工具才能打包。如:linuxdeployqt、CQtDeployer、AppImageKit,甚至是自己编写shell将依赖导入指定目录。
这里以linuxdeployqt为例。
下载地址:https://github.com/probonopd/linuxdeployqt/releases
2.1.2 安装
下载完成后,为了后续使用方便,先修改名称
mv linuxdeployqt-xxxxx-x86_64.AppImage linuxdeployqt
修改为可执行权限
chmod 777 linuxdeployqt
放入/usr/local/bin目录,方便调用
sudo mv linuxdeployqt /usr/local/bin
测试是否安装成功
linuxdeployqt --version
# 出现下方版本即表示成功
linuxdeployqt (commit 6fcaf74), build 55 built on 2023-09-23 13:33:41 UTC
2.1.3 设置环境变量
linuxdeployqt会根据环境变量找寻qt库文件
vim ~/.bashrc
增加bin、lib、plugins、qml路径(这步最重要)
# 填写qt安装目录下的相应路径,这里我只截取部分
export PATH=Qt5.14.2/5.14.2/gcc_64/bin:$PATH
export LIB_PATH=Qt5.14.2/5.14.2/gcc_64/lib:$LIB_PATH
export PLUGIN_PATH=Qt5.14.2/5.14.2/gcc_64/plugins:$PLUGIN_PATH
export QML2_PATH=Qt5.14.2/5.14.2/gcc_64/qml:$QML2_PATH
生效
source ~/.bashrc
测试
qmake --version
# 输出版本信息表示环境设置正确
QMake version 3.1
Using Qt version 5.14.2 in /home/xxx/install/Qt5.14.2/5.14.2/gcc_64/lib
2.1.4 创建项目目录
创建项目目录,接纳依赖文件以及可执行文件(可执行文件需要手动make一个Release版本的,set(CMAKE_BUILD_TYPE "Release") )
创建目录
# 这里就随意了,自己知道即可
mkdir test_prj
cd test_prj
将可执行文件拷贝至test_prj中
cp qt_prj test_prj
2.1.5 拷贝依赖
之后在test_prj下使用linuxdeployqt自动拷贝依赖
cd test_prj
linuxdeployqt qt_prj -appimage
执行完毕后,出现如下报错可以忽略
检查
完成后目录中就包含了所需的所有依赖(除显示加载的so)
2.1.6 补充依赖
防止项目的运行环境中缺少GCC,报错找不到“GLBCXX_XX.XX.XX”,补充以下lib(可通过find找到其在本机的位置):
libstdc++.so.6.0.xx
libstdc++.so.6
libtbbmalloc.so.2
libtbbmalloc_proxy.so.2
libtbb.so.2
此外,如果项目需要静态资源文件,如项目中的resource文件夹,同样需要手动拷贝至项目根目录中。
2.2 测试运行
最后在可执行文件根目录进行测试
./qt_prj
大功告成~
2.3 tips
如果在运行时提示找不到xxx.so,且搜索的路径是root/而不是项目路径,可以在执行前输入:
export LD_LIBRARY_PATH="这里写项目path/lib":$LD_LIBRARY_PATH
三、Windows
在windows环境下较为简单,直接使用Qt Creator左下方build release,编译release版本的可执行文件,之后将文件复制到空文件夹中。
之后启动cmd命令行,使用
windeployqt xxx\release版本的.exe
即可。
若qt项目为窗口应用程序,需要在cmakelist中添加如下命令,防止启动时弹出命令行窗口。
set(CMAKE_CXX_FLAGS "-mwindows")