如何找到对象文件之间的依赖关系?

Posted

技术标签:

【中文标题】如何找到对象文件之间的依赖关系?【英文标题】:How to find dependency between objects files? 【发布时间】:2019-09-03 23:17:22 【问题描述】:

我有一个包含一些对象文件的存档文件。

1) 如何判断对象文件之间是否存在依赖关系?

例如在this article 我有multiplication.o subtraction.olibarith.a。因此,如果我只想在 1 个目标文件中的函数中使用,我想从存档文件中删除其余的目标文件(从编译器中忽略)。

那么如何检查乘法.o 是否取决于减法.o

2)如何查看存档/对象文件中的所有导出函数?

【问题讨论】:

【参考方案1】:

1) 如何判断对象文件之间是否存在依赖关系?

对象文件不指定对其他特定对象文件的特定依赖关系。相反,目标文件链接器会记录每个目标文件导出的内容以及需要解析的内容。从链接器输出的结果(可执行)文件没有未解析的引用。

使用“nm”实用程序。有关详细信息,请参见 man nm。

例子:

$ nm somefile.o

它将列出所有文本(代码段)符号及其偏移量(带有字母“T”)。它将列出所有必须在链接时解析的未定义引用(带有字母“U”)。

【讨论】:

以上是关于如何找到对象文件之间的依赖关系?的主要内容,如果未能解决你的问题,请参考以下文章

类之间的依赖关系和组合关系

Oracle:如何循环并查找表之间的依赖/依赖关系,以便为每个表执行插入/更新操作?

如何在 CMake 中正确创建目标之间的依赖关系?

如何检查 Jar 文件之间的依赖关系?

对象之间的关系

类与类之间的关系