1. 从可运行程序的文件中拿出可执行文件
2. 终端下使用ldd命令查看需要的连接库
例如 ldd + 可执行文件
3. 把ldd查询到的所有需要的库祥数导出
4. 编写.sh文档(.sh文件命告亮名必须与可执行文件名字一样例:可执行文件名 test, .sh 文件名为 test.sh)
.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. 把所用到的库,可执行文件, .sh文件放到同一目录下
6. 终端中进入这一目录,输入:
chmod +x test.sh
7. 执行程序点击.sh文件或者终端输入:
./test.sh
在发布自己的程序时,很多时候都会因为一些依赖的dll文件不存在而报错,而我们新手却不知道应该如何添加,那么我们可以使用QT自带命令行来自动添加依赖文件。
命令行指令:windeployqt *.exe
首先,将你需要打包的exe文件单独放在一个文件夹中,然后打开QT自带的命令行,找到那个文件夹,之后就可以使用windeployqt加上exe文件来自动打包了,QT会自动帮你添加好全部的依赖文件,保证100%能运行,但是需要注意的是,友弯拆由于这个100%的保证,他也许添加了很多无闹银用的dll文件,这好枣会使得我们自动打包出来的文件很臃肿,所有有经验的各位可以按需要自行删除不必要文件。
方法一:解决跨设备无库文件,exe无法正常运行的问题。
1、Qt程序采用release方式编译发布;拷贝".exe"目录整个文件夹。
2、以管理员方式大携 运行QT命名行 (电脑桌面->开始->搜QT->进编译器) "Qt 5.9.9 (MSVC 2017 64-bit)",
3、 cd /滚羡伏d (+)".exe"跟目录文件路径 例如:cd /d C:\Users\86131\Desktop\release ,定位至exe文件目录。
3、 windeployqt (+)”.exe“的程序名称 例如:windeployqt rtpPlayer.exe ,自动将应用所需的库添加至.exe文件中。
拷贝此文件夹全部内容至其他设备,exe文件可直接正常运行。
方法二:打包成一个exe文件。
1、按方法一先添加好全部库文件。
2、运行"Enigma Virtual Box"软件,
①选择exe文件路径;
②设置打包后的exe文件的保存路径;
③将所有文件全选后拖拽至列表"add Folder Recursive"整个文件夹(可直接打开含库文件的release文件夹,全选文件夹内所有文件,拖拽至"Enigma Virtual Box"软件文件列表)
④建议压缩后执行。执行完成后会在相应路径生成打包好的exe文件,如过派樱库文件齐全、压缩步骤正确,即可在不同设备上正常运行打包后的exe程序。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)