objective-c – 什么是非脆弱的ABI?

前端之家收集整理的这篇文章主要介绍了objective-c – 什么是非脆弱的ABI?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
似乎暗示每个人都知道“非脆弱的ABI”是什么 – 考虑到 Xcode中所涉及的频率和事实性质.例如…

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构建设置文档通常不那么迟钝.

猜你在找的C&C++相关文章