Linuxシステムにおけるパッケージング配布Qtプログラム
簡単に述べる
Qtアプリケーションはwindowsの下に持っている小さなプログラム(windeployqt)をパッケージ化することができます.Linuxシステムではスクリプトファイルを手書きで書くことができ、lddコマンドを十分に利用してパッケージ化することができます.
インプリメンテーション
くだらないことは言わないで、手順は以下の通りです. QtCreatorは、Releaseバージョンを使用してコンパイルし、コンパイル後に生成された実行可能プログラム(MyApp)を空のディレクトリにコピーします. この空のディレクトリの下に新しいファイル(pack.sh)を作成します.ファイルの内容は以下の通りです. このpackを実行します.shファイル(./pack.sh)でパッケージングが完了します. 環境変数の追加、デスクトップショートカットの作成など、プログラムの導入を容易にするために、このディレクトリの下にshファイルを新規作成できます.ファイル名は実行可能ファイル名と同じでなければなりません.このファイルの内容は次のとおりです: 上記shファイルの実行権限:chmod+x xxxを付与.shプログラム実行時にこのshファイルを実行すればよい.
拡張
環境変数の配置は、上のステップ4のshファイルにコマンドを追加するだけでよい.デスクトップショートカットの実現は、4ステップ目のshファイルをデスクトップにコピーし、ディレクトリに入る文を追加するだけでよい.Qt環境のないホストにコピーして実行する場合は、lddコマンドがコピーされていない環境ライブラリ、すなわちplatformsフォルダと2つのリンクファイルにも注意してください.表示される文書【https://blog.csdn.net/lusanshui/article/details/84988017 】
Qtアプリケーションはwindowsの下に持っている小さなプログラム(windeployqt)をパッケージ化することができます.Linuxシステムではスクリプトファイルを手書きで書くことができ、lddコマンドを十分に利用してパッケージ化することができます.
インプリメンテーション
くだらないことは言わないで、手順は以下の通りです.
#!/bin/sh
exe="MyApp" #
des="NewDir" #
deplist=$(ldd $exe|awk '{if (match($3,"/")){printf("%s "),$3}}')
cp $deplist $des
#!/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 "$@"
拡張
環境変数の配置は、上のステップ4のshファイルにコマンドを追加するだけでよい.デスクトップショートカットの実現は、4ステップ目のshファイルをデスクトップにコピーし、ディレクトリに入る文を追加するだけでよい.Qt環境のないホストにコピーして実行する場合は、lddコマンドがコピーされていない環境ライブラリ、すなわちplatformsフォルダと2つのリンクファイルにも注意してください.表示される文書【https://blog.csdn.net/lusanshui/article/details/84988017 】