QT程序打包

Linux appimage

1. linuxdeployqt 编译环境配置

vim ~/.bashrc

# add path, 根据安装路径替换 /opt/Qt5.14.2
export PATH=/opt/Qt5.14.2/5.14.2/gcc_64/bin:$PATH
export LD_LIBRARY_PATH=/opt/Qt5.14.2/5.14.2/gcc_64/lib:$LD_LIBRARY_PATH
export QT_PLUGIN_PATH=/opt/Qt5.14.2/5.14.2/gcc_64/plugins:$QT_PLUGIN_PAT
export QML2_IMPORT_PATH=/opt/Qt5.14.2/5.14.2/gcc_64/qml:$QML2_IMPORT_PATH
2. 打包环境配置
# linuxdeployqt
git clone git@github.com:probonopd/linuxdeployqt.git
cd linuxdeployqt
mkdir build && cd build
cmake .. && make -j
sudo cp tools/linuxdeployqt/linuxdeployqt /usr/local/bin

# patchelf
git clone git@github.com:NixOS/patchelf.git
cd patchelf
sudo apt install -y automake && ./bootstrap.sh
./configure
make
sudo make install

# appimagetool
sudo wget -c "https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage" -O /usr/local/bin/appimagetool
sudo chmod a+x /usr/local/bin/appimagetool

# update ld
sudo /sbin/ldconfig -v
3. desktop && icon
# Qt 编译项目 release 版本,打开编译生成的目标文件夹
# 假定编译的二进制可执行文件名称为 xxxxxx
mkdir appimage	# 创建目录,目录名称自定
cd appimage && cp ../xxxxxx ./
touch xxxxxx.desktop
echo "[Desktop Entry]
> Type=Application
> Name=AppName
> Exec=AppRun %F
> Icon=icon.png
> Comment=Edit this default file
> Terminal=false
> Categories=Application;" > xxxxxx.desktop	# Name 程序名称, Icon 图标名称

# 此时 appimage 应该有三个文件 xxxxxx.desktop, xxxxxx, icon.png.png
4. 打包 Qt 程序
# 若依赖自编译动态库,需要创建目录 lib,并将动态库放在此目录下 
# 若构建过程提示缺少第三方 libxx.so, 按需安装即可,例如 libxx-dev
linuxdeployqt xxxxxx -unsupported-allow-new-glibc -appimage

Windows

1. 打包环境配置
  1. Qt Build Release Version
  2. 复制 xxx.exe 文件到某新建文件夹下
  3. 运行 Qt x.xx.x (MinGW x.x.x 64-bit) 或者 Qt 5.14.2 (MSVC 2017 64-bit)
    根据编译的版本选择
  4. 切换到 xxx.exe 目录下执行 windeployqt xxx.exe
  5. 打开 Engima Virtual Box 选择 xxx.exe 文件,然后点击 Add->Add Folder Recursive 选择文件夹,点击处理会在同目录下生成一个 xxx_boxed.exe
  6. 完成
// 打印 openssl 版本号
qDebug() << QSslSocket::supportsSsl() << QSslSocket::sslLibraryBuildVersionString() << QSslSocket::sslLibraryVersionString();
  1. 安装 openssll
  2. 复制 libcrypto-1_1-x64.dll, libssl-1_1-x64.dll 到 xxx.exe 同目录下,重新打包
2. 运行问题
  • 运行QT的应用程序.exe 提示找不到dll或(0xc000007b)的错误:

解决方法:把 Qt 安装目录下C:\Qt\Qt5.14.2\5.14.2 对应的编译版本的 bin 路径添加到系统环境变量即可
例如 C:\Qt\Qt5.14.2\5.14.2\mingw73_64\bin

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值