4

我正在做一个检查精灵文件的脚本,在某些时候它需要检查它的链接类型。
那么,
Linux 中是否有任何工具或稳定的方式可用于检查输出文件是完全静态链接还是动态链接?

'ld.so --verify' 可以检查文件是否是动态链接的,但它也会检查它是否可以被这个链接器处理,所以我不能用结果来确定链接类型。

'nm','file' 等其他工具会检查输出文件并通过打印消息提供有关链接类型的一些信息,这使得使用起来不太可靠..例如,如果我将脚本写入 grep 单词 '动态链接' '静态来自“file $filename”的标准输出的“链接”作为链接类型的验证感觉不可靠..

那么,有没有什么简单的方法或者小工具可以检查链接类型呢?或者为什么不可能?

4

2 回答 2

2

我不知道有一个实用程序可以专门执行您正在寻找的功能 - 如前所述,ldd可以(ab-)用于确定它。file也可能有用。但是信息在 ELF 标头中,只需要正确解析,所以编写一个简单的程序来做到这一点应该不难......

于 2012-11-19T16:11:55.283 回答
2

您可以ldd在二进制文件上使用,如果它是动态链接的,它会打印共享库并返回0,如果它是静态链接的,它会返回1

于 2012-11-19T15:32:53.170 回答