是否可以使用以下方式从框架加载命名的未导出符号dlsym
?
我尝试导入的符号有一个在框架内引用的名称。这是我需要调用的函数。
我试着像往常一样做dlopen
+ dlsym
方式,但是当我尝试加载未导出的符号时,dlsym
返回一个NULL指针。
dlsym
只能加载符号表中列出的函数。您可以通过运行列出符号表nm
关于有问题的框架。
您可以在 dyld 源中验证这一点:ImageLoaderMachOClassic::findExportedSymbol http://www.opensource.apple.com/source/dyld/dyld-195.5/src/ImageLoaderMachOClassic.cpp是 dlsym 的内部实现,它只是对符号表进行二分搜索:
And ImageLoaderMachO::parseLoadCmds http://www.opensource.apple.com/source/dyld/dyld-195.5/src/ImageLoaderMachO.cpp从 Mach 头中的加载命令加载符号表:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)