日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux 打包qt可执行文件

發布時間:2023/12/31 linux 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux 打包qt可执行文件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

折磨了我小半天,終于解決了,在這記錄一下:
1、QT生成release文件,并將生成的可執行文件(此處命名為QTConsole)復制到新建文件夾QTTest;
2、ldd QTConsole(QTConsole為你的可執行文件名)查看依賴文件:
由于我的依賴文件中有一個自己生成的動態庫文件,所以提示“not found”,配置該動態庫環境變量,直接在終端輸入:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/DESKTOP/QTTest

再次輸入ldd QTConsole查看環境變量是否配置成功。
3、在QTTest文件下創建pack.sh腳本文件:

#!/bin/sh exe="QTConsole"#可執行文件名 des="/home/DESKTOP/QTTest"#創建文件夾路徑 deplist=$(ldd $exe | awk '{if (match($3,"/")){printf("%s "),$3}}')#注意printf("%s ")后面空格,我就是因為沒寫空格,折騰了好久 cp $deplist $des

4、在QTTest文件下創建QTConsole.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 "$@"

照抄就行,不用修改。
5、運行腳本:

sudo chmod 777 pack.sh ./pack.sh

可以看到新建文件夾中多了很多依賴文件:

打包成功。
6、把新建文件夾拿到另一臺電腦上測試發現:出現“error while loading shared libraries”錯誤
原因是新的電腦上沒有我自己創建的動態庫文件。
(1)打開/etc/ld/so.conf文件;
(2)在該文件下添加該動態庫路徑;
(3)執行命令:sudo /sbin/ldconfig -v,使第二步修改生效;
(4)重新執行sudo ./QTConsole,運行可執行文件。

總結

以上是生活随笔為你收集整理的linux 打包qt可执行文件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。