关于Xcode6编译变更 “Implicit declaration of function 'sysctl' is invalid in C99” 报错问题
? 之前代碼在Xcode5.1上面跑的好好的,但是自從升級(jí)到6.0之后,就經(jīng)常出現(xiàn)編譯報(bào)錯(cuò)問題。后來查閱的相關(guān)資料,好像是Xcode為了兼容Swift語言,更換來編譯系統(tǒng)(名字忘記了)。于是就報(bào)了一個(gè)C語言的C99編譯錯(cuò)誤,不說了,直接上代碼。
一般出現(xiàn)該問題是因?yàn)橥ㄟ^C調(diào)用了unix/linux 底層接口,所以需要調(diào)整c語言的編譯選項(xiàng),設(shè)置方法見下圖:(根據(jù)實(shí)際情況選擇相應(yīng)的編譯選項(xiàng))
(Xcode默認(rèn)的是GNU99[-std=gnu99])
我更換了C語言的編譯之后,又緊接著來了這樣的一個(gè)報(bào)錯(cuò)。
conflicting types for ‘方法名’ 的錯(cuò)誤。這個(gè)方法走的是C語法,報(bào)錯(cuò)的意思就是說要走這個(gè)方法之前必須要先聲明(我不明白為什么XCODE5.1上面沒有這種坑爹的問題,這是api,怎么聲明?),后來我點(diǎn)擊COMMAND進(jìn)入這個(gè)方法發(fā)現(xiàn)這個(gè)方法原來是蘋果原生API的底層方法
通過上面查看這個(gè)API的路徑,最后我在這個(gè)文件里面導(dǎo)入了
#import <OpenGLES/ES1/gl.h>
OK了,問題終于解決了。
相信最新的Xcode6編譯系統(tǒng)會(huì)讓很多三方api底層的C代碼造成很多的問題,這里先記錄下來,以免下次再出現(xiàn)忘記了解決流程。
總結(jié)
以上是生活随笔為你收集整理的关于Xcode6编译变更 “Implicit declaration of function 'sysctl' is invalid in C99” 报错问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 自动检测iOS网络并可跳转至设置界面设置
- 下一篇: iOS 获取wifi ssid 名称