linux 打包qt可执行文件
折磨了我小半天,終于解決了,在這記錄一下:
1、QT生成release文件,并將生成的可執(zhí)行文件(此處命名為QTConsole)復(fù)制到新建文件夾QTTest;
2、ldd QTConsole(QTConsole為你的可執(zhí)行文件名)查看依賴文件:
由于我的依賴文件中有一個(gè)自己生成的動(dòng)態(tài)庫文件,所以提示“not found”,配置該動(dòng)態(tài)庫環(huán)境變量,直接在終端輸入:
再次輸入ldd QTConsole查看環(huán)境變量是否配置成功。
3、在QTTest文件下創(chuàng)建pack.sh腳本文件:
4、在QTTest文件下創(chuàng)建QTConsole.sh腳本文件(文件名需與你的可執(zhí)行文件同名):
#!/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、運(yùn)行腳本:
可以看到新建文件夾中多了很多依賴文件:
打包成功。
6、把新建文件夾拿到另一臺(tái)電腦上測試發(fā)現(xiàn):出現(xiàn)“error while loading shared libraries”錯(cuò)誤
原因是新的電腦上沒有我自己創(chuàng)建的動(dòng)態(tài)庫文件。
(1)打開/etc/ld/so.conf文件;
(2)在該文件下添加該動(dòng)態(tài)庫路徑;
(3)執(zhí)行命令:sudo /sbin/ldconfig -v,使第二步修改生效;
(4)重新執(zhí)行sudo ./QTConsole,運(yùn)行可執(zhí)行文件。
總結(jié)
以上是生活随笔為你收集整理的linux 打包qt可执行文件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PHP集成腾讯云短信SDK
- 下一篇: linux可执行文件的后缀是什么?