我是c++符号表和库的新手,想要了解符号表的行为。我们有一个具有原生支持的android应用程序。在分析共享库的符号表的过程中,我注意到.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()在这里你可以注意到下面的符号"boost::asio::error::detail::misc_category::~misc_category()“出现了两次。
我想知道为什么我们在符号表中得到重复的符号。我也想知道为什么我的应用程序在有重复符号的情况下运行良好,理想情况下链接器应该抛出重复符号错误也想知道在符号表中有重复符号是否会增加"so“的大小,最终导致应用程序的大小增加
如果发生这种情况,我如何确保我在符号表中只得到唯一的条目。注意:-我们使用clang
https://stackoverflow.com/questions/54750330
复制相似问题