我是 C++ 符号表和库的新手,想了解符号表的行为。我们有一个原生支持的安卓应用程序。在分析共享库的符号表的过程中,我注意到 .so 文件中存在重复的符号。请查找符号表的示例列表。
0162502c w DO .data 00000004 Base boost::asio::error::get_addrinfo_category()::instance
00aaa4f4 w DF .text 0000009c Base boost::asio::error::get_misc_category()
01626334 w DO .bss 00000004 Base guard variable for boost::asio::error::get_misc_category()::instance
00aab4d0 w DF .text 0000003c Base boost::asio::error::detail::misc_category::~misc_category()
00aab368 w DF .text 0000003c Base boost::asio::error::detail::addrinfo_category::~addrinfo_category()
00aab3a4 w DF .text 00000034 Base boost::asio::error::detail::addrinfo_category::name() const
00aab3d8 w DF .text 000000f8 Base boost::asio::error::detail::addrinfo_category::message(int) const
00aab50c w DF .text 0000003c Base boost::asio::error::detail::misc_category::~misc_category()
Run Code Online (Sandbox Code Playgroud)
在这里您可以注意到以下符号“boost::asio::error::detail::misc_category::~misc_category()”出现了两次。
我想了解为什么我们在符号表中得到重复的符号。也有兴趣知道为什么我的应用程序在有重复符号时运行良好 [哪个链接器应该在理想情况下抛出重复符号错误] 还想知道符号表中的重复符号是否会增加“so”的大小,最终导致增加应用程序的大小
如果发生这种情况,我如何确保在符号表中只获得唯一的条目。注意:-我们正在使用clang
我有两个 kafka 集群 A 和 B,B 是 A 的副本。我想仅在 A 关闭时才使用集群 B 中的消息,反之亦然。然而,使用来自两个集群的消息会导致重复消息。那么有什么方法可以配置我的 kafka 消费者仅从一个集群接收消息。
谢谢 -