使用Clang编译器把OC文件编译成C++文件

2020/9/16 posted in  iOS底层 总阅读量

Clang是什么?

Clang是一个C、C++、Objective-C和Objective-C++编程语言的编译器前端,它采用了LLVM作为其后端。由Apple主导编写,基于LLVM的C/C++/Objective-C编译器。

如何把OC文件编译成C++文件

  • OC文件编译成C++文件,只需要执行下面的指令即可。
// 指令格式:
clang -rewrite-objc [编译文件] -o [输出文件]

// 例子:
clang -rewrite-objc main.m -o main.cpp
  • 如果你编译的OC文件含有UIKit,会出现如下报错

解决办法是改用下面的指令:

clang -rewrite-objc -fobjc-arc -fobjc-runtime=ios-13.6.0 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator13.6.sdk AppDelegate.m -o AppDelegate.cpp

-fobjc-runtime=ios-13.6.0: 13.6.0改用你当前的runtime版本。
iPhoneSimulator13.6.sdk:需要改成你自己本机Xcode安装的SDK版本,可以跟着目录地址进去查看。