关于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語言的編譯之后,又緊接著來了這樣的一個報錯。
conflicting types for ‘方法名’ 的錯誤。這個方法走的是C語法,報錯的意思就是說要走這個方法之前必須要先聲明(我不明白為什么XCODE5.1上面沒有這種坑爹的問題,這是api,怎么聲明?),后來我點擊COMMAND進入這個方法發現這個方法原來是蘋果原生API的底層方法
通過上面查看這個API的路徑,最后我在這個文件里面導入了
#import <OpenGLES/ES1/gl.h>
OK了,問題終于解決了。
相信最新的Xcode6編譯系統會讓很多三方api底層的C代碼造成很多的問題,這里先記錄下來,以免下次再出現忘記了解決流程。
總結
以上是生活随笔為你收集整理的关于Xcode6编译变更 “Implicit declaration of function 'sysctl' is invalid in C99” 报错问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 自动检测iOS网络并可跳转至设置界面设置
- 下一篇: iOS 获取wifi ssid 名称