编译Qt可执行程序,通过 ldd 获取到该程序的依赖库,下方脚本获取可执行程序并拷贝到指定目录。
#!/bin/bash
LibDir=$PWD"/lib"
Target=$1
lib_array=($(ldd $Target | grep -o "/.*" | grep -o "/.*/[^[:space:]]*"))
$(mkdir $LibDir)
for Variable in ${lib_array[@]}
do
cp "$Variable" $LibDir
done
创建打包程序的路径,Ubuntu在打包Qt程序时,需要几个文件夹的路径结构如图:
- control 文件:
package:程序名称
version:版本
architecture:平台 amd64或者其他
maintainer:维护者
description:软件介绍
- desktop文件介绍
[Desktop Entry]
Name=安装程序名称
Comment=程序介绍
Exec=程序安装位置 如果是默认/usr/bin下,可以只写程序名称
Icon=图标位置
Terminal=false
Type=Application
X-Ubuntu-Touch=true
Categories=Development
Name[zh_CN]=desktop
- 一个打包的小脚本 pack.sh
#!/bin/sh
name=$1
downLine="_"
version="1.0.0"
platform="amd64"
HZ=".deb"
debname=${name}${downLine}${version}${downLine}${platform}${HZ}
echo ${debname}
rm -f ${debname}
sudo dpkg -b $1 ${debname}
执行 ./pack.sh 打包位置;
注:假设程序名称为APPExec,创建一个APPExec的文件夹,在APPExec文件夹中创建上述的目录结构;之后再APPExec同级路径下打开终端,执行
./pack.sh APPExec 即可生成APPExec.deb安装包。