在Linux用Qt开发的程序,如果想要在别的Linux主机上运行,那么需要把可执行程序和所依赖的链接库都打包才可以。
1、编译文件
在Qt中使用release的方式编译出可执行文件。
2、创建脚本
(1).创建copy_libs.sh拷贝可执行程序以及所依赖的链接库到指定目录下
#!/bin/sh appName="HelloWorld" #可执行程序的名称 appDir=$PWD/app mkdir $appDir #创建打包文件夹 cp $PWD/HelloWorld $appDir #将可执行程序拷贝到打包文件夹中 cp $PWD/HelloWorld.sh $appDir deplist=$(ldd $appName | awk '{if (match($3,"/")){ printf("%s "),$3 } }') #获取可执行程序所依赖的动态链接库 cp $deplist $appDir #将所依赖的动态库拷贝到打包文件夹中
(2).创建脚本HelloWorld.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 "$@"
执行./copy_libs.sh
依赖的动态库文件会拷贝到指定目录下,如下图所示:
执行./HelloWorld.sh运行可执行程序
原创文章,作者:kirin,如若转载,请注明出处:https://blog.ytso.com/278302.html