Qt程序打包和发布

准备工具

1、Qt Creator,记录Qt Creator的安装路径

2、NSIS空白脚本程序和NSIS汉化脚本程

1 Windows下打包与发布

1.1 打包成zip发布

1、通过Qt Creator build应用程序,选择Relaease build的应用程序占用空间少(推荐),选择Debug build的应用程序占用空间大。

2、进入到build产物路径下,找到对应的exe程序(一版在建立项目的统计目录),....\QtPackTest\build-QtPackTest-Desktop_Qt_5_9_1_MSVC2013_64bit-Release\release

3、将对应的exe单独放置在自己创建的新目录下(..\QtPackTest\PackExe),方便后期将exe单独进行压缩

4、将Qt安装目录的bin的路径添加到环境变量(如果Qt有多个编译器,注意选择你对应Build 构建时的编译器)

  4.1、我的Qt-bin路径(D:\Install\Qt5.9.1\5.9.1\msvc2013_64\bin)

  4.2、添加变量:计算机-右键-属性-高级系统设置-环境变量-系统变量-path-编辑(记得变量之间用分号隔开)或者选择新建

5、点击开始-cmd-回车进入命令提示符,使用cd命令进入刚刚创建的PackExe文件夹

6、接着输入:windeployqt xx.exe (xx为exe文件名),会出现以下界面:

7、打包后新建文件夹目录,形成压缩包就可以发布

 

注意:1、配置后提示windeployqt不是内部命令,烦请重新启动设备

    2、打包后,如果运行提示少了什么库,可以已经提示自行补上

    3、如果是打包开源项目的exe,注意将初始产物下(....\release)的其他文件夹放到新建文夹中(PackExe)

 

1.2 打包成exe发布

1、先安装汉化版,确保有VNISEdit存在(杀毒软件可能导致VNISEDit编译环境无法创建,安装后直接退出,桌面无图1图标显示),才能参考说明生成相关脚本。安装NSIS官网版本,确保汉化版的脚本能正常生成(一定要先安装汉化版,在安装官网版)

2、双击VNISEdit编译环境,点击文件-》新建脚本:向导


3、应用程序信息,可以自行命名。设置要打包的应用程序的名称、版本号、出版人等,可以预留一个网站,在后面设置生成一个对应网址的“Internet 快捷方式”,我的修改如下图

 然后点击下一步。


3、安装程序选项,设置生成安装程序的图标、名字、语言(SimpChinese为中文)、用户图形界面的样式、压缩算法等。可选择默认,也可根据要求进行修改,下一步。

4、快闪屏幕和背景窗口,设置安装程序在安装时的一些样式,这里选择默认,下一步。

5、应用程序的目录与授权信息,设置安装程序进行安装时默认的安装路径,授权文件可以不选(如果选择一定要确保文件存在),下一步。

6、应用程序文件,设置我们需要打包的文件,例如exe、和dll所在目录(注意选择包含子目录),具体可参考下图。

 然后点击下一步。


7、应用程序图标,设置安装程序安装完成后开始菜单中应用程序文件夹名字以及文件夹中的内容,选择生成快捷方式的位置,下一步。

8、安装程序之后运行,设置安装程序安装完成后运行应用程序的路径,下一步。

9、解除安装程序,设置卸载程序的图标以及一些提示信息,下一步,完成。

注:这里有一些信息使用了变量来表示,因为脚本中可能多个地方使用该值,使用变量可以方便修改,统一管理。这些变量在下面的脚本中会设置相应的值。
10、完成向导,勾选”保存脚本“,以及”转换文件路径到相对路径“,完成

11、这时就可以看到通过向导生成的脚本,可以在这里继续修改脚本

修改完脚本以后,点击菜单”NSIS“-》"编译并运行",编译成功后,会生成一个exe文件,安装包制作完成,脚本运行结果

 12、和用Qt自带打包软件相比,可以只要释放Setup.exe成给客户安装,并且有卸载的程序

 安装后的产物

2 Linux下打包与发布

2.1 Qt程序安装

从官网下载在线安装包

安装前执行:

sudo apt-get install build-essential libgl1-mesa-dev
chmod +x qt-unified-linux-x64-4.5.2-online.run
sudo apt-get install build-essential // 安装编译工具,它可以使得我们的程序知道头文件和库函数放在哪个位置。否则打开软件,创建项目后看不到.h文件和.cpp文件
sudo apt-get install libqt4-dev //不安装编译时会出现“cannot find -lgl”错误。这个在我系统上我并没有安装成功,显示无法定位软件包 libqt4-dev。解决方法:找到系统中自带的libGL.so库,然后链接到/usr/lib/目录,具体看下一条说明

参考:Linux系统中Qt安装

1、执行./qt-unified-linux-x64-4.5.2-online.run 提示:

./qt-unified-linux-x64-4.5.2-online.run: error while loading shared libraries: libxcb-xinerama.so.0: cannot open shared object file: No such file or directory

  解决方法:

sudo apt install libxcb-xinerama0

参考:Linux下安装Qt方法

Qt5.15.2在Ubutun20.04中的安装问题处理记录:
1、安装libxcb-xinerama0还存在问题,查看libqxcb.so缺少什么连接库
  ldd ./Tools/QtCreator/lib/Qt/plugins/platforms/libqxcb.so

2、依据少的进行安装,我遇见的是缺少libxcb-cursor-dev库,执行指令可以解决问题

  sudo apt install libxcb-cursor-dev

3、在线安装需要下载指定版本,需要在筛选页面只选择active,然后找到对应版本下载。

 2.2 Qt程序源码安装(ARM平台)

sudo apt update

sudo apt install build-essential libgl1-mesa-dev

wget https://download.qt.io/official_releases/qt/5.15/5.15.2/single/qt-everywhere-src-5.15.2.tar.xz

tar -xf qt-everywhere-src-5.15.2.tar.xz
cd qt-everywhere-src-5.15.2

./configure -opensource -confirm-license -prefix /usr/local/qt5.15.2

make  //提示:Project ERROR: xcb-xfixes development package not found

增加:sudo apt-get update

   sudo apt-get install libxcb-xfixes0-dev

sudo make install

echo "export PATH=$PATH:/usr/local/qt5.15.2/bin" >> ~/.bashrc
source ~/.bashrc

qmake -v

下载QtCreator对应源码,创建QtCreator
qmake ./qtcreator.pro make // PATH 为install路径,自行修改,如果不在非需sudo目录安装可以不加sudo sudo make install INSTALL_ROOT=PATH

2.2 Qt程序打包

1、Qt无法生成可执行程序:需要再pro中添加QMAKE_LFLAGS += -no-pie
2、环境变量设置只填前5项,否则可能导致打包异常

3、根据安装不同,可能需要执行:linuxdeployqt 程序名 -verbose2

参考:Linux系统下Qt的打包和发布

posted @ 2023-05-22 21:41  天码丶行满  阅读(325)  评论(0编辑  收藏  举报