在我的应用程序启动时,我需要获取链接到它的库列表。 不幸的是,我在cocoa中找不到任何一个例子,我怎么能从代码中做到这一点。有人可以帮我吗?
答案 0 :(得分:1)
所以,这可能是一个比这更好的方法(这是完全未经测试的写入此文本字段代码),但我认为这样做会有所作为:
uint32_t imageCount = _dyld_image_count();
char **names = calloc(sizeof(char *), imageCount);
int32_t *versions = calloc(sizeof(int32_t), imageCount);
for (uint32_t idx = 0; idx < imageCount; idx++) {
names[idx] = _dyld_get_image_name(idx);
versions[idx] = NSVersionOfLinkTimeLibrary(names[idx]);
}
如果我正确理解dyld.h,这应该会列出所有当前加载的mach-o图像及其 link-time 版本。链接时间版本为-1的任何mach-o映像都没有与主可执行文件链接。