Linux發布Qt程式

2021-09-17 08:24:50 字數 1460 閱讀 1704

已經在ubuntu上實測沒有問題。

建立指令碼 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 $

do cp "$variable" $libdir

echo $variable

done

不過這樣會包含大量的系統庫,比較煩,可以只包含一些/usr/local/路徑下的庫:

#!/bin/bash

libdir=$pwd"/lib"

target=$1

lib_array=($(ldd $target | grep -o "/.*" | grep -o "/.*/[^[:space:]]*"))

$(mkdir $libdir)

for variable in $

do if [[ "$variable" =~ ^/usr/local/.* ]];

then

cp "$variable" $libdir

echo $variable

fidone

使用 copylib.sh 指令碼,在qt編譯出的可執行檔案(為了方便,假設其名為testprogram)的release資料夾下,執行 ./copylib.sh testprogram ,得到其需要的動態庫,在lib資料夾中。

使用 copylib.sh 指令碼,在 qt安裝路徑/5.12.2/gcc_64/plugins/plantforms 中,執行 ./copylib.sh libqxcb.so,得到 libqxcb.so 的依賴動態庫,在lib檔案中。

將所有得到的動態庫以及testprogram複製到要打包的資料夾中;

將 qt安裝路徑/5.12.2/gcc_64/plugins 複製到要打包的資料夾中;

建立指令碼 testprogram.sh ,並 chmod 777 testprogram.sh,執行程式執行 ./testprogram.sh 。

#!/bin/sh

dirname=`dirname $0`

tmp="$"

if [ "$" != "/" ]; then

dirname=$pwd/$dirname

fild_library_path=$dirname

export ld_library_path

對於需要使用了 qopenglwidget 的程式,需要將資料夾 qt安裝路徑/5.12.2/gcc_64/plugins/xcbglintegrations 拷貝到要打包的資料夾中。

Qt程式發布

debug版本發布 附帶qt的bin目錄下q d4.dll 若程式中使用了qt的plugins 則在發布程式目錄下建立相應的plugins目錄 若用visual studio 2005編譯 則需visual studio安裝目錄下 vc redist debug nonredist x86 micr...

Qt 發布程式

define me freshman 我是新手,發現錯誤請指正 你已經很厲害,可以寫一些實現自己想法的程式了。那麼,寫好了之後,你需要分發給使用者來使用。可在本機可以執行的程式,到了客戶端卻總是無法執行。要麼提示,程式配置錯誤,請重新安裝。由於應用程式配置不正確,應用程式未能啟動 vc2005編譯的...

發布Qt程式

發布過程中常遇到的問題就是缺少dll。如果直接報缺少某某dll,問題很明顯。有時候報 這個錯誤不是很明顯,原因基本上還是缺少dll。解決辦法如下 切換到release模式,先build在clear,這樣就只剩下乙個可執行檔案,或者將可執行檔案單獨複製到乙個資料夾。這一步就是新增依賴的dll,網上用的...