首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GNU ld:如何检测多个定义的符号?

GNU ld:如何检测多个定义的符号?
EN

Stack Overflow用户
提问于 2012-01-30 17:40:01
回答 1查看 281关注 0票数 1

我将两组非常相似的源代码聚合到一个库归档中。在两个代码集中可能有5到6个函数定义了相同的签名,但实现略有不同。我需要找到这些函数,这样我就可以更改它们的名称(如果我需要这两个函数),或者删除其中一个。

我以为ld会帮我完成这项艰巨的工作,因为它报告说函数是多重定义的,但它并没有做到这一点。我现在有一个两阶段的链接程序:

1-两组源文件的增量链接,以生成归档文件。如果我已经知道哪些函数是多重定义的,我可以使用nm来确认该符号在归档文件中出现了两次。

2-此存档文件与调用库代码的对象的最终链接。‘'ld’在这一步中没有抱怨,大概只是链接了它在归档中找到的第一个匹配的对象,而没有报告第二个对象也可能被使用。

你知道如何让ld扫描整个归档,并报告多个定义的函数吗?谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-01-30 20:31:01

尝试链接所有组件.o文件(而不是.a文件),您将得到多个定义的消息。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9061873

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档