最近在做一个QT的project,顺便学习一下程序的打包,然后就遇到了这个问题

在网上get到 ldd 命令 :显示程序使用的库文件

这里写图片描述

然后下面是借鉴的脚本命令

deplist=$( ldd Programe | awk '{if (match($3,"/")){ print $3}}' )

 cp $deplist direction

我们可以看到库文件的样式,第一行只有一个名字,没有具体路径,因此是无效的库文件,只有 “=>”后面带有“/”(即存在目录)的项才有效。因此我们使用awk的脚本功能,判断第三个参数,即是“=>”之后的路径必须包含“/”

其中“Programe”是程序文件名字,direction则是拷贝目标目录
之后将第一行的输出重定向到变量中, 再使用cp指令从列表拷贝到指定目录

原始状态:

这里写图片描述

执行命令:

这里写图片描述

结果:

这里写图片描述