Objective-C编译成C++代码报错

来源:互联网 发布:淘宝相机渠道批发骗 编辑:程序博客网 时间:2024/06/05 11:23

由于想了解OC通过runtime机制转成的C++代码是什么样子的,在进入项目目录中,执行cc -rewrite-objc ViewController.m时如下错:

In file included from ViewController.m:9:**./ViewController.h:9:9: ****fatal error: ****'UIKit/UIKit.h' file not found**#import <UIKit/UIKit.h>**        ^**1 error generated.

fuck

遂在Google上找到各种类似的解决办法,但都没有对症下药,无论尝试那种办法都报‘UIKit/UIKit.h’ file not found的错。
但最终还是摸索出解决办法,就是使用:

clang -x objective-c -rewrite-objc -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk xxxxx.m

当然,不能每次都输入这么长的路径和命令,可通过alias简化工作,步骤:

  1. 进入终端,键入命令 vim ~/.bash_profile
  2. 在vim界面输入i进入编辑编辑状态并且键入:alias rewriteoc='clang -x objective-c -rewrite-objc -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk'
  3. 键入完毕,点esc退出编辑状态,再键入:wq退出vim并保存,执行source ~/.bash_profile<-这句一定要执行,执行才会生效
    图例:

alias建别名

运行~/.bash_profile

然后进入项目目录,找到你想要编译的文件,执行rewriteoc xxx.m即可成功,图例


激动又紧张

成功

最后感受下这浓浓的情谊:



转自 http://www.jianshu.com/p/43a09727eb2c

原创粉丝点击