是否可以使用dlsym从框架加载命名的未导出符号?
我试图导入的符号有一个名称,在框架中引用它。这是一个我需要调用的函数。
我试图用通常的dlopen + dlsym方式来实现它,但是当我试图加载一个没有导出的符号时,dlsym会返回一个空指针。
发布于 2011-10-13 00:49:54
dlsym只能加载符号表中列出的函数。可以通过在所讨论的框架上运行nm来列出符号表。
您可以在dyld源代码中验证这一点:ImageLoaderMachOClassic::findExportedSymbol是dlsym的内部实现,它只需二进制搜索符号表:
ImageLoaderMachO::parseLoadCmds从Mach头中的load命令加载符号表:
https://stackoverflow.com/questions/6008904
复制相似问题