最近在做一个QT的project,顺便学习一下程序的打包,然后就遇到了这个问题
在网上get到 ldd 命令 :显示程序使用的库文件
然后下面是借鉴的脚本命令
deplist=$( ldd Programe | awk '{if (match($3,"/")){ print $3}}' )
cp $deplist direction
我们可以看到库文件的样式,第一行只有一个名字,没有具体路径,因此是无效的库文件,只有 “=>”后面带有“/”(即存在目录)的项才有效。因此我们使用awk的脚本功能,判断第三个参数,即是“=>”之后的路径必须包含“/”
其中“Programe”是程序文件名字,direction则是拷贝目标目录
之后将第一行的输出重定向到变量中, 再使用cp指令从列表拷贝到指定目录
原始状态:
执行命令:
结果: