天天看點

在Linux下用sh打包連結庫函數移植可執行檔案

1.利用qt生成可執行檔案,使用release的方式編譯出可執行檔案,然後建立一個檔案夾,将可執行檔案拷貝進去備用。

小編這裡生成的檔案是這樣的:

在Linux下用sh打包連結庫函數移植可執行檔案

2.利用腳本檔案

2.1建立檔案

2.1.1pask.sh

2.1.2test2.sh 這個腳本檔案名必須和要釋出的程式名字相同,是以為 Server

建立檔案後,檔案夾包含内容如下:

在Linux下用sh打包連結庫函數移植可執行檔案

2.2 添加腳本

向pack.sh檔案裡添加以下内容:

#!/bin/sh  
exe="test2" #你需要釋出的程式名稱
des="/home/shang/test" #建立檔案夾的位置
deplist=$(ldd $exe | awk  '{if (match($3,"/")){ printf("%s "),$3 } }')  
cp $deplist $des
           

然後向test2.sh檔案裡添加以下内容(内容不需要更改):

#!/bin/sh  
appname=`basename $0 | sed s,\.sh$,,`  
dirname=`dirname $0`  
tmp="${dirname#?}"  
if [ "${dirname%$tmp}" != "/" ]; then  
dirname=$PWD/$dirname  
fi  
LD_LIBRARY_PATH=$dirname  
export LD_LIBRARY_PATH  
$dirname/$appname "$@"
           
在Linux下用sh打包連結庫函數移植可執行檔案

執行腳本

終端進入檔案夾目錄,運作:

sh ./pack.sh
           

可執行檔案依賴的連結庫将會拷貝到所在的目錄,如圖:

打包釋出

将上面整個檔案夾,複制拷貝到其他linux系統,在檔案夾路徑内終端運作:

./test2.sh