似乎暗示每个人都知道“非脆弱的ABI”是什么 – 考虑到
Xcode中所涉及的频率和事实性质.例如…
@H_502_15@解决方法
Subscript requires size of interface node which is not constant in non-fragile ABI
要么
Select the Objective-C ABI version to use. Available versions are 1 (legacy “fragile” ABI),2,(non-fragile ABI 1),and 3 (non-fragile ABI 2).
那说……什么是非脆弱的ABI? (为什么不把它称为不那么抽象/更清楚地解释?)
非脆弱的ABI指的是将实例变量添加到类而不需要重新编译所有子类的能力.
即在v1中(确实没有真正的ObjC版本),如果Apple要将实例变量添加到NSView(在Cocoa上,32位),那么NSView(或子类的子类)的每个子类都必须是重新编译或他们会爆炸. v2和v3解决了这个问题.
它在detail in this weblog post中解释.
您要引用的文档位于llvm / clang手册页中.大多数时候,大多数开发人员都非常难得;除非你正在编写一个直接驱动编译器的Makefile,否则没有太多理由去阅读那个页面(除非是spelunking – 当然这很有教育意义).
它是用Unix手册页的风格编写的,毫不奇怪,有点……愚蠢.对于几乎所有任务,最好坚持使用更高级别的文档.即Xcode构建设置文档通常不那么迟钝.