Xcode中Objective-C和C++混编的实现(一)

时间:2022-09-07 07:34:18

最近在做一个项目需要把OpenCV 的代码移植到iOS中,在移植过程中遇到了很多问题,其中最关键的就是OC与C++混编的问题,找了很多资料和弯路终于走通了,现在把思路整理好做个笔记.希望能给有需要的朋友一点帮助.


注意:
1.有C++代码的文件必须改成.mm Xcode才可以识别
Xcode中Objective-C和C++混编的实现(一)
Xcode中Objective-C和C++混编的实现(一)
2.确保编译器是Build Settings->Apple LLVM6.1 - Language->Compile Sources As->已经选择 According to File Type,如果选择了Objective-C++会有很多诡异的编译错误,原因未知,也许和我工程里包含了OpenCV的库有关.



Xcode中Objective-C和C++混编的实现(一)

Xcode中Objective-C和C++混编的实现(一)

混编原理:
需要一个NSObject类来封装C++类

CellCountObj     //NSObject 类
HDCCountObj   // C++类

实现原理:
CellCountObj 封装HDCCountObj 的C++类,

调用实现:
在ViewController中调用 CellCountObj类的外部接口,来实现调用 C++类
Xcode中Objective-C和C++混编的实现(一)

文件类型列表

Xcode中Objective-C和C++混编的实现(一)