【发布时间】:2014-04-01 22:10:10
【问题描述】:
在 iOS 项目中使用 OpenCV 时,互联网上的大多数文章都建议将 .m 更改为 .mm。
然而,既然 Objective C 是 C++ 的严格超集,为什么我们需要做这个改变呢?更糟糕的是,如果不将.m 更改为.mm,#import <opencv2/opencv.hpp> 会失败
【问题讨论】:
标签: c++ ios objective-c xcode opencv
在 iOS 项目中使用 OpenCV 时,互联网上的大多数文章都建议将 .m 更改为 .mm。
然而,既然 Objective C 是 C++ 的严格超集,为什么我们需要做这个改变呢?更糟糕的是,如果不将.m 更改为.mm,#import <opencv2/opencv.hpp> 会失败
【问题讨论】:
标签: c++ ios objective-c xcode opencv
Objective-C 不是 C++ 的超集。将 .m 更改为 .mm 会将文件从 Objective-C 更改为 Objective-C++,它是 C++ 的超集。
【讨论】:
编译器需要知道正在处理什么类型的代码。
通过使用 .mm,编译器需要 Obj-C 和 C++。 通过使用 .m 它只需要 Obj-C
根据文件扩展名,编译的处理方式不同。
【讨论】: