iOS clang编译OC成C++文件

由于想了解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.

遂在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简化工作,步骤:

进入终端,键入命令 vim

~/.bash_profile

在vim界面输入i进入编辑编辑状态并且键入:

alias rewriteoc='clang -x objective-c -rewrite-objc -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk'

键入完毕,点esc退出编辑状态,再键入:wq退出vim并保存,执行source ~/.bash_profile<-这句一定要执行,执行才会生效

图例:


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


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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Ubuntu的发音 Ubuntu,源于非洲祖鲁人和科萨人的语言,发作 oo-boon-too 的音。了解发音是有意...
    萤火虫de梦阅读 99,571评论 9 467
  • linux资料总章2.1 1.0写的不好抱歉 但是2.0已经改了很多 但是错误还是无法避免 以后资料会慢慢更新 大...
    数据革命阅读 12,224评论 2 33
  • 1. vim 选择文本,删除,复制,粘贴 文本的选择,对于编辑器来说,是很基本的东西,也经常被用到,总结如下:v ...
    路痴千行阅读 3,324评论 0 0
  • 公司新员工学习有用到,Vim官网的手册又太大而全,而网上各方资料要么不全面,要么不够基础。在网上搜集各方资料,按照...
    甲鱼阅读 161,393评论 43 685
  • 这些天一一都很自律:早上5:45准时起床洗漱,6:20送孩子上学,步行半小时去食堂吃丰盛且低脂的早餐,中午回家吃适...
    清风如水阅读 199评论 0 1