已經在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,網上用的...