美文网首页
cpp转换(OC转C/C++)

cpp转换(OC转C/C++)

作者: 你好小老虎 | 来源:发表于2021-08-30 14:36 被阅读0次
    image.png

    目录
    一. 转换方法
    二. 常见报错
    三. 指定 sdk

    一:转换方法
    1. 打开终端 cd 目标文件所在文件夹
    2. clang -rewrite-objc 目标类名.m -o 目标类名.cpp
    3. 打开文件夹就能找到你转换的 xxx.cpp文件
    二:常见报错

    2.1 报错 fatal error: 'UIKit/UIKit.h' file not found 如图

    2.2 更换转换命令即可,如下:

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

    2.3 上面命令太长,可以通过 alias 起个别名简化,方法如下

    1. 终端输入命令 vim ~/.bash_profile
    2. 在vim界面输入i进入编辑编辑状态并且输入:

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

    1. esc退出编辑状态, 再输入:wq退出vim并保存
    2. 执行 source ~/.bash_profile 命令
    3. 执行 ~/.bash_profile
    4. 进入项目目录,找到你想要编译的文件,执行 rewritecpp xxx.m 即可成功
    三:指定sdk

    有的oc代码要转成c代码时,在真机和模拟器上差别还是挺大的。如果需要指定SDK,那么要结合xcrun命令

    • 指定真机 xcrun -sdk iphoneos clang -rewrite-objc xxx.m
    • 指定模拟器 xcrun -sdk iphonesimulator clang -rewrite-objc xxx.m
    • 指定版本 xcrun -sdk iphonesimulator14.5 clang -rewrite-objc xxx.m

    相关文章

      网友评论

          本文标题:cpp转换(OC转C/C++)

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