一、Windows下发布安装包
1、准备
QT下载安装:http://download.qt.io/archive/qt/
qt-installer-framework 下载安装:http://download.qt.io/official_releases/qt-installer-framework/
Windows系统下载:QtInstallerFramework-win-x86.exe
2、生成要打包的程序
- Qt Creator中生成Release版本的文件程序,会生成一个可执行程序(例如:QtInster.exe)。
- 创建一个空的文件夹(例如:insertpacket)。
- 拷贝可执行文件(QtInster.exe)到insertpacket文件夹中。
- 进行如下操作:
3、发布安装包
- 找到QtInstallerFramework-win-x86.exe 的安装目录将(C:\Qt\QtIFW-3.0.6\examples\startmenu)这个文件夹中拷贝到指定位置(例如:桌面),可以重命名文件夹的名称(例如:InsterTarget)。
- 在C:\Users\Administrator\Desktop\InsterTarget\config 文件夹中修改配置文件config.xml
<?xml version="1.0" encoding="UTF-8"?> <Installer> <Name>InsertMenu</Name> <!-- 正在安装的产品名称 --> <Version>1.0.0</Version> <!-- 版本 --> <Title>InsertMenu</Title> <!-- 标题栏上显示的安装程序的名称 --> <Publisher>Qt-Project</Publisher> <!--发布者 --> <!-- Directory name is used in component.xml --> <StartMenuDir>InsertMenu</StartMenuDir> <!-- Windows开始菜单中产品的默认程序组名称 --> <TargetDir>@HomeDir@/InsterTarget</TargetDir> <!-- 安装的默认目标目录 --> </Installer>
- 在C:\Users\Administrator\Desktop\InsterTarget\packages\org.qtproject.ifw.example\meta 文件夹中修改包文件packet.xml
<?xml version="1.0" encoding="UTF-8"?> <Package> <DisplayName>InsertMenu</DisplayName> <!-- 组件的可读名称 --> <Description>InsertMenu, program para dibujar.</Description> <!-- 组件的可读描述 --> <Version>1.0.0-1</Version> <!-- 组件的版本号格式 --> <ReleaseDate>2019-01-30</ReleaseDate> <!-- 此组件版本发布的日期 --> <Default>true</Default> <Script>installscript.qs</Script> <!--被加载的脚本文件名 --> </Package>
- 在C:\Users\Administrator\Desktop\InsterTarget\packages\org.qtproject.ifw.example\meta 文件夹中修改脚本文件installscript.qs
function Component()
{
// default constructor
}
Component.prototype.createOperations = function()
{
// call default implementation to actually install README.txt!
component.createOperations();
if (systemInfo.productType === "windows") {
component.addOperation("CreateShortcut", "@TargetDir@/InsertMenu.exe", "@StartMenuDir@/InsertMenu.lnk",
"workingDirectory=@TargetDir@", "iconPath=%SystemRoot%/system32/SHELL32.dll",
"iconId=2", "description=Open README file");
}
}
- 将insertpacket 文件夹中所有文件(Qt执行程序和执行文件的依赖文件)拷贝到C:\Users\Administrator\Desktop\InsterTarget\packages\org.qtproject.ifw.example\data中(注:这个文件夹不要拷贝过来)。
- 打开Qt命令窗口,转到打包的文件目录(InsterTarget)
离线安装打包:binarycreator --offline-only -c config/config.xml -p packages qtInstaller
在线安装打包:binarycreator -c config/config.xml -p packages qtInstaller
- 然后就可以在该目录下看到发布成功的安装程序。
二、Linux下发布安装包
1、准备
QT下载安装:http://download.qt.io/archive/qt/
qt-installer-framework 下载安装:http://download.qt.io/official_releases/qt-installer-framework/
Linux下载:QtInstallerFramework-linux-x64.run
2、生成要打包的程序
- Qt Creator中生成Release版本的文件程序,会生成一个可执行程序(例如:qtInstaller)。
- 创建一个空的文件夹(例如:qtInstaller)。
- 拷贝Release文件夹中的可执行文件(linuxInster)到qtInstaller文件夹中。
- 在 qtInstaller 中创建一个脚本文件(例如:copylib.sh)并
执行chmod 777 copylib.sh
,文件内容如下: -
#!/bin/bash LibDir=$PWD"/lib" Target=$1 lib_array=($(ldd $Target | grep -o "/.*" | grep -o "/.*/[^[:space:]]*")) $(mkdir $LibDir) for Variable in ${lib_array[@]} do cp "$Variable" $LibDir done
- 执行 ./copylib.sh linuxInster,然后就可以在文件夹 qtInstaller 中会看到一个lib文件夹,这个文件夹里就是 linuxInster可执行文件的依赖文件。
3、发布安装包
- 找到 QtInstallerFramework-linux-x64.run 的安装目录进入examples目录(例如:home/kaiy/Qt/QtIFW-3.0.6/examples)。
- 把 examples目录下 tutorial 目录中的全部文件拷贝到 qtInstaller 目录中。
- 现在qtInstaller中的文件目录如下:
- 进入到config目录,修改config.xml ,如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<Installer>
<Name>linuxInstaller</Name> <!-- 正在安装的产品名称 -->
<Version>1.0.0</Version> <!-- 版本 -->
<Title>linuxInstaller</Title> <! -- 标题栏上显示的安装程序的名称 -->
<Publisher>super App</Publisher> <! --发布者 -->
<!-- Directory name is used in component.xml -->
<StartMenuDir>linuxInstaller</StartMenuDir> <!-- Windows开始菜单中产品的默认程序组名称 -->
<TargetDir>@HomeDir@/qtInstaller </TargetDir> <!-- 安装的默认目标目录 -->
</Installer>
- 进入 home/kaiy/Qt/QtIFW-3.0.6/examples/qtInstaller /packages/com.vendor.product/meta 这个目录中的文件按照自己的需求进行修改(我把文件夹复制到examples中)
- 把 home/kaiy/Qt/QtIFW-3.0.6/examples/qtInstaller 目录下的可执行文件 linuxInster 和 它的依赖文件lib目录下的所有文件拷贝到home/kaiy/Qt/QtIFW-3.0.6/examples/qtInstaller /packages/com.vendor.product/data中。
- 输入指令,打包。
在线安装打包:home/kaiy/Qt/QtIFW-3.0.6/bin/binarycreator -c config/config.xml -p packages linuxset_up。
离线安装打包:home/kaiy/Qt/QtIFW-3.0.6/bin/binarycreator --offline-only -c config/config.xml -p packages linuxset_up。
注:binarycreator文件前必须指定该文件的目录(home/kaiy/Qt/QtIFW-3.0.6/bin/binarycreator),否则无法打包。
Qt Installer Framework使用说明:http://www.cnblogs.com/oloroso/p/6775318.html