con*_*are 1 compiler-construction iphone xcode gcc objective-c
在xcode中,在使用gcc编译应用程序时,我想抛出编译时错误,如果NSZombieEnabled之类的东西用于发布版本,从而确保编译失败并且我不会意外地做一些愚蠢的事情.
我做了一些谷歌搜索,但无法弄清楚如果满足某个条件,编译器如何保释.当然这一定很容易,我只是找不到它?
Mar*_*off 11
使用的#error指令:
#if SHOULD_FAIL
#error "bad compiler!"
#endif
int main()
{
return 0;
}
Run Code Online (Sandbox Code Playgroud)
$ 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.但在你所描述的情况下,这应该不重要.