Linuxシステムにおけるパッケージング配布Qtプログラム

1393 ワード

簡単に述べる
Qtアプリケーションはwindowsの下に持っている小さなプログラム(windeployqt)をパッケージ化することができます.Linuxシステムではスクリプトファイルを手書きで書くことができ、lddコマンドを十分に利用してパッケージ化することができます.
インプリメンテーション
くだらないことは言わないで、手順は以下の通りです.
  • QtCreatorは、Releaseバージョンを使用してコンパイルし、コンパイル後に生成された実行可能プログラム(MyApp)を空のディレクトリにコピーします.
  • この空のディレクトリの下に新しいファイル(pack.sh)を作成します.ファイルの内容は以下の通りです.
  • #!/bin/sh
    exe="MyApp" #        
    des="NewDir" #             
    deplist=$(ldd $exe|awk '{if (match($3,"/")){printf("%s "),$3}}')
    cp $deplist $des
    
  • このpackを実行します.shファイル(./pack.sh)でパッケージングが完了します.
  • 環境変数の追加、デスクトップショートカットの作成など、プログラムの導入を容易にするために、このディレクトリの下にshファイルを新規作成できます.ファイル名は実行可能ファイル名と同じでなければなりません.このファイルの内容は次のとおりです:
  • #!/bin/sh
    appname=`basename $0|sed s,\.sh$,,`
    dirname=`dirname $0`   #  appname dirname          ,    ,           
    tmp="${dirname#?}"
    if[ "${dirname%$tmp}" != "/" ]; then
    dirname=$PWD/$dirname
    fi
    LD_LIBRARY_PATH=$dirname
    export LD_LIBRARY_PATH
    $dirname/$appname "$@"
    
  • 上記shファイルの実行権限:chmod+x xxxを付与.shプログラム実行時にこのshファイルを実行すればよい.

  • 拡張
    環境変数の配置は、上のステップ4のshファイルにコマンドを追加するだけでよい.デスクトップショートカットの実現は、4ステップ目のshファイルをデスクトップにコピーし、ディレクトリに入る文を追加するだけでよい.Qt環境のないホストにコピーして実行する場合は、lddコマンドがコピーされていない環境ライブラリ、すなわちplatformsフォルダと2つのリンクファイルにも注意してください.表示される文書【https://blog.csdn.net/lusanshui/article/details/84988017 】