ubuntu 18.04 環境下QT打包


第一步:生成可執行文件,這個沒什么好說的,生成可執行文件的時候選擇Release版本。還有一個就是在*.pro文件中添加上一句代碼:

QMAKE_LFLAGS += -no-pie

不加這句代碼的話,生成的可執行文件不能雙擊運行,終端是可以啟動的但是個人覺得並不方便。

第二步:在合適的位置新建一個文件夾,比如我是在/home/lxb/callipers,在將qt生成的可執行文件拷貝過來放到該目錄下。(qt生成的編譯生成的文件目錄:/home/lxb/QTprofile/build-CXXtest-Desktop_Qt_5_12_5_GCC_64bit-Release),我的可執行文件是在這個目錄下面的名字為CXXtest的文件。我們把CXXtest拷貝/home/lxb/callipers里。在文件夾里新建一個lib文件夾用了裝依賴的鏈接庫。在callipers文件夾下新建腳本文件config.sh內容如下:

 

#!/bin/sh  
  
exe="CXXtest" #發布的程序名稱   這是我的可執行程序的名字
des="/home/lxb/callipers/lib/" #這個是用來存放依賴庫的位置
  
deplist=$(ldd $exe | awk  '{if (match($3,"/")){ printf("%s "),$3 } }')  
cp $deplist $des

修改下文件的權限:

sudo chmod 777 config.sh

執行腳本:

./config.sh 

這樣所有依賴的庫都被復制到了lib目錄下。

第三步:現在需要將程序和依賴庫鏈接起來,在callipers目錄下新建文件CXXtest.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 "$@"

給文件添加一下執行權限並執行:

sudo chmod +x CXXtest.sh

./CXXtest.sh

現在可以將文件夾復制到需要運行的電腦上,需要給CXXtest和CXXtest.sh執行權限,然后執行./CXXtest.sh。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM