0x00 摘要
在OS X
或者IOS
上运行一个程序时,dyld除了需要加载主要的执行程序之外,还需要加载需要的库文件以及库文件依赖的库文件。
1 | // instantiate ImageLoader for main executable |
这一条函数调用加载了需要运行的程序,具体详细分析可以参考dyld中mach-o文件加载的简单分析。
而在link
主程序之前还会动态的加载一些其他的库文件。例如DYLD_INSERT_LIBRARIES
。
1 | // load any inserted libraries |
loadInsertedDylib
的实现其实就是简单的调用load
函数。通过简单的分析load
函数,增强对dyld工作流程的理解。