clang编译器提供一个编译选项-rewrite-objc,可以将.m文件转换成对应的C/C++文件,可以更清晰了解ObjC对应的C/C++代码是什么模样。
- clang -rewrite-objc demo.m
默认将生成demo.cpp文件,本质是C代码。- 注意,此处为了简略,不管是macOS还是Linux平台,上面的命令可能会报错,因为缺少ObjC需要的一些编译配置,具体编译配置请自行处理。可参考:构建无比简洁的clang编译ObjC环境
注意,这并不意味着clang编译.m文件是先转换成.c代码,因为clang本身原生支持ObjC文件,可以直接编译,不用所谓"预处理"成C代码再编译。但假设某个平台没有clang编译器,可以利用这种方式用C/C++编译器做二次编译。
