iphone - 如何在 GCC 和 Xcode 中手动引发编译器错误

标签 iphone objective-c xcode gcc compiler-construction

在 xcode 中,在使用 gcc 编译应用程序时,如果发行版启用了 NSZombieEnabled 之类的功能,我想抛出编译时错误,从而确保编译失败,并且我不会意外地做一些愚蠢的事情。

我做了一些谷歌搜索,但无法弄清楚如何在满足特定条件时使编译器退出。当然,这一定很容易,我只是没有找到它吗?

最佳答案

使用the #error directive :

#if SHOULD_FAIL
#error "bad compiler!"
#endif

int main()
{
    return 0;
}
$ gcc a.c -DSHOULD_FAIL=0 # passes fine
$ gcc a.c -DSHOULD_FAIL=1
a.c:2:2: error: #error "bad compiler!"

由于 NSZombieEnabled 是一个环境变量,因此您需要在构建脚本中巧妙地将宏定义为零或一。

严格来说,#error 指令发生在 C 预处理器中,而不是 gcc 中。但这对于您所描述的情况来说并不重要。

关于iphone - 如何在 GCC 和 Xcode 中手动引发编译器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2994490/

相关文章:

iPhone 崩溃 - 发送到已解除分配实例的消息

ios - 以不同方式突出显示 TextField 中的某些文本

objective-c - iPad 应用程序中的 memset 错误

ios - 使用 Xcode 11.2 在 iOS 模拟器中打开 .app 时出错

iPhone iOS 5.0 OpenGl ES 2.0

ios - 如何修复 “Xcode 6 quit unexpectedly"

ios - 使用谓词查找以 A 开头和结尾的字符串

objective-c - 构建一个使用 cocoapods 的可分发静态库

ios - Xcode 11 单元测试 : Devices with iOS 12. * 未列出

xcode - 在 xcode 10.1 上添加可本地化的字符串