关于Xcode6编译变更 “Implicit declaration of function 'sysctl' is invalid in C99” 报错问题

  之前代码在Xcode5.1上面跑的好好的,但是自从升级到6.0之后,就经常出现编译报错问题。后来查阅的相关资料,好像是Xcode为了兼容Swift语言,更换来编译系统(名字忘记了)。于是就报了一个C语言的C99编译错误,不说了,直接上代码。

一般出现该问题是因为通过C调用了unix/linux 底层接口,所以需要调整c语言的编译选项,设置方法见下图:(根据实际情况选择相应的编译选项)

(Xcode默认的是GNU99[-std=gnu99])


我更换了C语言的编译之后,又紧接着来了这样的一个报错。

关于Xcode6编译变更 “Implicit declaration of function 'sysctl' is invalid in C99” 报错问题_第1张图片


conflicting types for ‘方法名’ 的错误。这个方法走的是C语法,报错的意思就是说要走这个方法之前必须要先声明(我不明白为什么XCODE5.1上面没有这种坑爹的问题,这是api,怎么声明?),后来我点击COMMAND进入这个方法发现这个方法原来是苹果原生API的底层方法

关于Xcode6编译变更 “Implicit declaration of function 'sysctl' is invalid in C99” 报错问题_第2张图片

通过上面查看这个API的路径,最后我在这个文件里面导入了

#import


OK了,问题终于解决了。

相信最新的Xcode6编译系统会让很多三方api底层的C代码造成很多的问题,这里先记录下来,以免下次再出现忘记了解决流程。

你可能感兴趣的:(解决警告学习,Xode技巧学习)