xcode9报 Implicit declaration of function 'require' is invalid in c99 的错误

require与require_noerr是定义在AssertMacros.h中的宏,在xcode9中,这个文件发生了改变,并且苹果在文件中解释了原因

xcode9报 Implicit declaration of function 'require' is invalid in c99 的错误

即从前Mac OS X定义了大量没有__前缀的宏,这些宏可能与用户代码中,包括Boost和C++标准库中类似的函数和宏发生冲突,因此拥有高版本Mac OS的Sierra和ios11要求用户迁移到定义的新宏。

接下来介绍了如果想使用以前的宏,该怎么做:巴拉巴拉,,,

在接下来介绍了如何用脚本自动把原来的宏转换为新的宏:如下,巴拉巴拉,,,

xcode9报 Implicit declaration of function 'require' is invalid in c99 的错误


当然也可以比对着上图自己一个个手动换,,,,,,,