很多的时候 需要将自己写的QT 程序发布一下 所以今天教一下 怎么在ubuntu 环境下将自己的写的Qt 程序打包打包是为了不依赖 开发环境 和开发的库。
1. QtCreate使用Release版本编译
2. 从可运行程序的文件中拿出可执行文件,例:untitled23424242
3. 终端下使用ldd命令查看需要的连接库,例:ldd untitled23424242
4. 把ldd查询到的所有需要的库导出
这里提供一个脚本将ldd打印出来的依赖库复制到指定路径:
#!/bin/sh exe="untitled23424242" #发布的程序名称 这是我的可执行程序的名字 des="/home/alvin/Desktop/untitled23424242/" #你的路径 这是我的可执行文件的路径 对应的相应的更改 deplist=$(ldd $exe | awk '{if (match($3,"/")){ printf("%s "),$3 } }') cp $deplist $des
说明:exe :要发布的程序名称 des:指定复制的路径
对应的相应的要更改
改完之后设置 脚本的权限
sudo chmod 777 dabao.sh
运行脚本
./dabao.sh
你会发现可执行文件依赖的 库复制到 你指定的路径里了
5. 编写.sh文档 并将它放在与步骤4同一目录下(.sh文件命名必须与可执行文件名字一样例:可执行文件名 untitled23424242, .sh 文件名为 untitled23424242.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 "$@"
6. 执行这个.sh文件:
可能因为不行执行需更改权限:
chmod +x untitled23424242.sh