如何查找链接到同一应用程序的两个库之间的所有符号冲突(引用和未引用的符号)?

发布于 2024-11-15 05:20:12 字数 224 浏览 1 评论 0原文

如何在 gcc 中的链接时将静态库的所有符号强制链接到应用程序?

我试图通过链接两个静态库来创建一个应用程序。这两个库可能有一些具有相同名称的符号。我想找到所有此类符号并在其中一个库中重命名它们。

但是,我发现取消引用函数被消除了,因此我无法找到所有可能发生冲突的符号。有没有办法强制 gcc 链接两个静态库中的所有符号(引用和未引用),从而找到冲突符号?

或者还有其他方法可以解决吗?

How to forcefully link all symbols of a static library to an application at link time in gcc?

I am trying to create an application by linking two static libraries. Both these libraries may have some symbols which may have the same name. I want to find all such symbols and rename them in one of the libraries.

But, I find that unreferences functions are eliminated and hence I am unable to find all the symbols which may be colliding. Is there a way to force gcc to link all symbols (referenced and unreferenced) from both the static libs thereby finding colliding symbols?

Or is there any other way to go about it?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

时光匆匆的小流年 2024-11-22 05:20:12

您可以使用 nm 命令吗(链接)每个图书馆? nm 应该列出所有符号,然后您可以比较每个库的 nm 的输出。

Could you just use the nm command (link) on each library? nm should list all the symbols and then you can just compare the output of nm for each library.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文