在我维护的一些iOS代码中添加64位支持时,我发现nlist函数不适用于x86_64架构(64位iOS模拟器) . 代码调用nlist()适用于所有其他arch(armv7,armv7s,arm64和i386)但不能成功构建x86_64,其中链接器无法在链接库中找到符号 .
它可以在使用Xcode创建的模板项目上重现,只需添加:
#import <mach-o/nlist.h>
int testnlist()
{
struct nlist nl[2];
bzero(&nl, sizeof(struct nlist) * 2);
return nlist("test", nl);
}
结果是:
体系结构x86_64的未定义符号:“_ nlist”,引用自:ViewController.o中的_testnlist ld:未找到体系结构x86_64的符号
使用iOS SDK:8.1测试Xcode 6.1.1,为iPhone 6模拟器构建 .
在我看来,苹果可能已经忘记包含一些为x86_64构建的模拟器共享库,但我可能也会忽略一些明显的愚蠢......
1 回答