当使用OpenCV for iOS项目时,互联网上的大多数文章都建议将.m
更改为.mm
。
但是,由于目标 C 是C++的严格超集,为什么我们需要进行此更改?更糟糕的是,如果不将.m
更改为.mm
,#import <opencv2/opencv.hpp>
就会失败
Objective-C 不是C++的超集。 将 .m 更改为 .mm 会将文件从 Objective-C 更改为 Objective-C++,这是C++的超集。
编译器需要知道正在处理什么类型的代码。
通过使用 .mm,编译器需要 Obj-C 和 C++。通过使用 .m,它只期望 Obj-C
根据文件扩展名,编译的处理方式不同。