OC代码转C++代码的生成

作者: IIronMan | 来源:发表于2018-07-03 11:19 被阅读16次

使用clang编译器将Objective-C代码编译成C语言代码, 并生成在一个.cpp的 C++文件中。具体的命令行是:

$ cd 当前文件夹 
$ clang -rewrite-objc ViewController.m

可能会遇到一个错误就是如下:

报错

解决办法是将之前执行的命令替换成为:

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

这时, 你会发现, 你的文件夹中多了一个.cpp的文件, 证明解决了这个问题。

优化

  • 一、如果你觉得这个命令很繁琐不易记, 你可以采用 alias来起一个别名来代替这个命令。

    • 1.打开终端, 键入命令 vim ~/.bash_profile

    • 2.在vim界面输入i进入编辑编辑状态并且键入:jkrewriteoc是我自己起的

      alias jkrewriteoc='clang -x objective-c -rewrite-objc -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk'
      
    • 3.键入完毕后,点击Esc退出编辑,再按 Shift+: ,最后再按:wq保存并退出vim文件并保存

    • 4.键入命令source ~/.bash_profile(必须要执行这句)

  • 二、优化后的使用

    $ cd 当前文件夹 
    $ jkrewriteoc ViewController.m
    
    • 解释:优化后:也就是起别名,

      jkrewriteoc ViewController.m      
      

      上下两句等同

      $ clang -x objective-c -rewrite-objc -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk ViewController.m
      
    • 结果


      .cpp文件
      .cpp文件内容
  • 补充:如果vim编辑器出现 E325: ATTENTION,终端执行下面的代码就会好了

     rm -f ~/.bash_profile.swp

相关文章

  • OC底层知识(八) : block

    提示:下面会把OC相应的类转化为C++代码,OC代码转C++代码的生成 一、block 知识回顾block 是一个...

  • OC代码转C++代码的生成

    使用clang编译器将Objective-C代码编译成C语言代码, 并生成在一个.cpp的 C++文件中。具体的命...

  • OC对象的本质

    一、本质 OC对象的本质是C和C++中的结构体 OC代码转C++代码:clang -rewrite-objc ma...

  • OC代码转C++代码

    干了好几年开发了,最近才学习object-c的底层。 小小调研下。 进入文件夹的内部。而不是工程截屏2021-03...

  • iOS小记

    1.oc代码转c++代码: clang -rewrite-objc main.m -o main.cpp

  • OC中的Block(一)

    Block的本质 block本质上也是一个OC对象,它内部也有个isa指针 以上OC代码生成的C++代码为: 其中...

  • Objective-C 中类的数据结构

    一、类的结构 OC 中的代码在底层实现,使用的是 C、C++,所以要研究 OC 中的类结构,可以将 OC 的代码转...

  • 深入理解Objective-C中类的数据结构

    一、类的结构 OC 中的代码在底层实现,使用的是 C、C++,所以要研究 OC 中的类结构,可以将 OC 的代码转...

  • iOS编译命令

    将OC代码转换成C++代码 OC语言基于C/C++语言,实际上要先经过一层编译将OC代码转换为C++代码,对应的c...

  • 笔记(一):OC对象本质

    一 通用的一些东西 OC 的面向对象是基于C/C++的结构体实现的。 2.OC代码转C++代码 可能会遇到的错误&...

网友评论

    本文标题:OC代码转C++代码的生成

    本文链接:https://www.haomeiwen.com/subject/stlduftx.html