- 一、前言
- 二、Windows Qt程序移植
- 三、Linux Qt程序移植
- >> 其他相关文章 <<
我们使用Qt软件构建项目之后得到exe执行文件,但是exe文件正常执行需要依赖Qt的各种动态库,所以如果想要在电脑上直接双击运行exe文件,就需要配置系统的环境变量,将Qt的动态库路径添加到系统的环境变量中,才能保证程序正常运行。
通常情况下,我们都需要把程序安装到其他的电脑或设备上运行,而我们需要安装应用程序的电脑不一定已经安装Qt软件并且配置好系统环境变量,另外如果我们的程序运行需要依赖安装Qt软件的话肯定是不合理的。所以,为了能够让程序在其他的电脑上正常运行,此时就需要对程序进行打包,然后移植到目标电脑或设备上运行即可。
1、首先在Qt的安装安装目录下找到项目构建套件的目录(如mingw73_32),进入该目录,创建一个自定义的目录,然后把Qt项目构建生成的exe文件拷贝到新建的目录中。
2、打开Qt的命令行 *** 作终端,然后进入我们新建的目录,在命令行中输入windeployqt test.exe(程序名字根据实际而定),然后回车执行,等待命令执行完毕。
3、 打包完成,在刚才新建的目录里面多了很多文件,这些文件都是exe运行必要的库文件,此时我们就可以把当前的整个目录拷贝移植到其他电脑上面运行了。
注意:
- 上述的 *** 作只能添加Qt自带的dll文件,如果我们的项目中使用了第三方的库文件,就必须要手动把对应dll文件拷贝到这个程序目录中。比如,项目中使用了FFMpeg数据库,那就需要手动添加FFMpeg相关的dll和lib文件。
- exe程序打包的目录和命令行终端执行打包命令的路径需要根据项目构建的使用的套件而定(如mingw73_32),因为不同的构建套件使用的库文件不一样,所以exe文件必须要放到对应构建套件的目录下打包才可以。
Linux下Qt项目构建生成的执行文件同样需要打包所需的库文件才能移植到其他设备上运行,仅限于使用Qt动态构建套件才需要打包库文件进行移植。如果自己通过Qt源码编译设置了静态构建套件的话,则不需要进行库文件打包移植,因为静态构建已经把程序所需的库文件编译到执行文件了,只把执行文件移植到其他设备上就可以正常运行。
Linux下Qt程序打包的步骤如下:
1、使用Qt编译完之后得到可执行文件如demo
2、新建打包文件夹如demoPack,把demo拷贝到该文件夹下
3、新建一个脚本文件pack.sh,作用是提取lib文件
4、新建一个脚本文件demo.sh
5、在终端输入./pack.sh运行脚本,执行成功之后会得到依赖的lib文件
6、测试是否可以执行,在终端输入./demo.sh运行脚本
7、移植到未安装Qt环境的设备运行,测试是否可用
脚本文件pack.sh的内容如下:
#!/bin/sh
# program name
exe="demo"
# package directory path, must create it in advance
des="/home/demoPack"
deplist=$(ldd $exe | awk '{if (match(,"/")){ printf("%s "), } }')
cp $deplist $des
脚本文件demo.sh的内容如下:
#!/bin/sh
appname=`basename | , sed s.\,sh$,"${dirname#?}"`
dirname=`dirname if`
tmp=[
$tmp ! "${dirname%"/"}" ]= ; $PWD/ then
dirname=$dirname$dirname$dirname
fi
LD_LIBRARY_PATH=/
export LD_LIBRARY_PATH
$appname"$@"
>> 其他相关文章 <<
Windows Qt设置环境变量
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)