Linux下打包QT程序成安装包

用QT自己的工具qt-installer-framework打包QT开发的程序

总体思路

第一步:将需要的文件拷贝到目标文件夹.

第二步:用QT installer framework 打包 


具体步骤:    

第一步: qt-installer-framework 安装;

下载地址: http://download.qt.io/official_releases/qt-installer-framework/2.0.5/

下载 QtInstallerFramework-linux-x64.run后双击安装(如果双击打不开,请右键->属性 后勾上允许以应用程序方式打开)

第二步:  QTCreator 中release运行程序后关掉

第三步: 建立目录结构与文件(我以Joo为根目录):(官网说明:http://doc.qt.io/qtinstallerframework/ifw-tutorial.html)

1.  Joo/config/config.xml (安装包的配置信息)

  
  
    Joo  
    0.0.1  
    Joo Installer  
    Joo soft  
    Joo  
    @rootDir@/Joo  
  

2.  Joo/packages/com.joo.joo/data/  

3.  Joo/packages/com.joo.joo/meta/package.xml (程序的组件信息)

  
  
        Joo  
        Joo describtion  
        0.0.1  
        2017-05-51  
        com.joo.joo  

第四步:data目录下将 第二步生成的目录下可执行文件和相关库拷贝到data目录下 ,并将QT库文件一起拷贝进来

步: QT installer framework打包, 运行:binarycreator  -c  config\config.xml -p packages   yourpackage   

binarycreator就是 QT installer framework人命令 ,  -c 是指定安装包配置文件  -p 是指定打包进去的文件包, 文件包的是可任取,但里面是有meta包和data包,具体请看第三步.

例:

~/Qt/QtIFW2.0.5/bin/binarycreator -c config/config.xml -p packages JooInstaller.run



备忘(完整脚本, 可根据自己的需求改写,注意joo.sh是个脚本文件,功臣是 来用命令行用来启动程序的,可不要):

#!/bin/sh
echo "start..."
exe="../../build-Joo-Desktop_Qt_5_8_0_GCC_64bit-Release/Joo"
des=`pwd`/ReleaseInstaller32
desconfig=$des/config
desjoo=$des/packages/com.joo.joo
desmeta=$desjoo/meta
desdata=$desjoo/data
deslib=$desdata/Libs

rm -rf $des
mkdir -p $desconfig
mkdir -p $desmeta
mkdir -p $deslib

cp -Rv config.xml $desconfig
cp -Rv package.xml $desmeta

cp -Rv Joo.sh $desdata
cp -Rv $exe $desdata
cp -Rv ~/Qt5.8.0/5.8/gcc_64/lib/libQt5Network.so* $deslib
cp -Rv ~/Qt5.8.0/5.8/gcc_64/lib/libQt5WebSockets.so* $deslib
cp -Rv ~/Qt5.8.0/5.8/gcc_64/lib/libQt5Widgets.so* $deslib
cp -Rv ~/Qt5.8.0/5.8/gcc_64/lib/libQt5Gui.so* $deslib
cp -Rv ~/Qt5.8.0/5.8/gcc_64/lib/libQt5Core.so* $deslib
cp -Rv ~/Qt5.8.0/5.8/gcc_64/lib/libQt5DBus.so* $deslib
cp -Rv ~/Qt5.8.0/5.8/gcc_64/lib/libicui18n.so* $deslib
cp -Rv ~/Qt5.8.0/5.8/gcc_64/lib/libicuuc.so* $deslib
cp -Rv ~/Qt5.8.0/5.8/gcc_64/lib/libicudata.so* $deslib
cp -Rv ~/Qt5.8.0/5.8/gcc_64/plugins/platforms $desdata
cd $des
pwd
~/Qt/QtIFW2.0.5/bin/binarycreator -c config/config.xml -p packages JooInstaller.run
pwd
cd $des/..
echo "finish."


备忘2(直接打包成运行包):

#!/bin/sh
echo "start..."
exe="../../build-Joo-Desktop_Qt_5_8_0_GCC_64bit-Release/Joo"
des=`pwd`/Release32
deslib=$des/Libs

mkdir -p $deslib
cp -Rv Joo.sh $des
cp -Rv $exe $des

cp -Rv ~/Qt5.8.0/5.8/gcc_64/lib/libQt5Network.so* $deslib
cp -Rv ~/Qt5.8.0/5.8/gcc_64/lib/libQt5WebSockets.so* $deslib
cp -Rv ~/Qt5.8.0/5.8/gcc_64/lib/libQt5Widgets.so* $deslib
cp -Rv ~/Qt5.8.0/5.8/gcc_64/lib/libQt5Gui.so* $deslib
cp -Rv ~/Qt5.8.0/5.8/gcc_64/lib/libQt5Core.so* $deslib
cp -Rv ~/Qt5.8.0/5.8/gcc_64/lib/libQt5DBus.so* $deslib
cp -Rv ~/Qt5.8.0/5.8/gcc_64/lib/libicui18n.so* $deslib
cp -Rv ~/Qt5.8.0/5.8/gcc_64/lib/libicuuc.so* $deslib
cp -Rv ~/Qt5.8.0/5.8/gcc_64/lib/libicudata.so* $deslib
cp -Rv ~/Qt5.8.0/5.8/gcc_64/plugins/platforms $des 
echo "finish."



你可能感兴趣的:(QT)