在实际的iOS开发项目实践中,我们有时候会遇到在同一个项目中同时编译oc、c++、c语言的情况,虽然理论上说c++为c的超集,oc++为c++的超集,但实际编译会出现各种各样的错误。先不讨论这是不是苹果的锅,毕竟当下解决问题才是最重要的。
首先设置源文件编译方式Build Settings->Compile Sources As->According to File Type
new file
ocProxy.h
ocProxy.m
ocProxy可以实现oc与c的混编,比如可以调用ffmpeg实现视频解码,如果需要调用c++方法,比如使用dlib做图像处理,就可以调用oc++Proxy里面的接口来实现间接的调用。
oc++Proxy.h
oc++Proxy.mm
相反,oc++Proxy可以实现oc与c++的混编,如果需要调用c方法,就可以调用ocProxy里面的接口来实现间接的调用。
这样我们就可以实现三种语言的混编了。