使用Linuxdeployqt打包QT程序

1、下载 linuxdeployqt

wget -c https://github.com/probonopd/linuxdeployqt/releases/download/continuous/linuxdeployqt-continuous-x86_64.AppImage

赋予可执行权限

chmod +x linuxdeployqt-continuous-x86_64.AppImage

mkdir -p AppDir/usr/bin

mkdir -p AppDir/usr/share/applications

mkdir -p AppDir/usr/share/icons/hicolor/256x256/apps

放入可执行文件: 将你编译出的 COM_and_RJ45_TEST 文件拷贝到 AppDir/usr/bin/ 目录下。
准备图标: 你的 .pro 文件里写了 RC_ICONS = logo.ico,这是 Windows 用的。在 Linux 下,你需要准备一个 .png 格式的图标(例如 logo.png),并拷贝到 AppDir/usr/share/icons/hicolor/256x256/apps/ 目录下。

2、创建 .desktop 文件

在 AppDir/usr/share/applications/ 目录下创建一个名为 COM_and_RJ45_TEST.desktop 的文件,写入以下内容:
`
[Desktop Entry]
Type=Application
Name=COM_and_RJ45_TEST
Exec=COM_and_RJ45_TEST
Icon=logo
Comment=Serial Port and RJ45 Test Tool
Terminal=false
Categories=Utility;Development;
`

3、配置 Qt 环境变量

linuxdeployqt 是通过系统环境变量中的 qmake 来寻找你的 Qt 库位置的。如果你用的是 Qt 在线安装器安装的 Qt(例如安装在 ~/Qt 或 /opt/Qt),必须配置环境变量,否则它会去打包系统自带的旧版 Qt 库。

export PATH=/home/你的用户名/Qt/5.15.2/gcc_64/bin:$PATH

export LD_LIBRARY_PATH=/home/你的用户名/Qt/5.15.2/gcc_64/lib:$LD_LIBRARY_PATH

测试一下是否配置成功:

qmake -v

确保输出的 Qt 版本是你刚才编译程序使用的版本。

4、执行打包命令

在终端中,进入包含 AppDir 文件夹的上一级目录,运行以下命令:

./linuxdeployqt AppDir/usr/share/applications/COM_and_RJ45_TEST.desktop -appimage

⚠️ 常见报错处理(Glibc 错误):
如果你的系统较新(例如 Ubuntu 20.04 或更高),执行上述命令时可能会报错提示 ERROR: The host system is too new…(系统太新)。这是因为 AppImage 追求向下兼容。你可以添加 -unsupported-allow-new-glibc 参数强制打包:

./linuxdeployqt AppDir/usr/share/applications/COM_and_RJ45_TEST.desktop -appimage -unsupported-allow-new-glibc