在zxing iphone项目中,自述文件指出:
确实如此。但我想知道为什么?
- 在尝试使用时构建自己的项目时可能会发生这种情况 ZXingWidgetController你得到链接器 像“未定义引用”这样的错误。 如果此错误看起来像c ++ 未定义的引用,然后重命名 main.m到main.mm(Objective-C ++ 源后缀)可以解决问题
答案 0 :(得分:64)
.mm扩展名代表Objective-C ++,当编译器可以处理C ++类时。 但是当使用.m扩展名时,它将只能编译C代码,而不需要C ++类。
答案 1 :(得分:0)
.m
和.mm
都是基于Mac的应用程序的源代码的类文件扩展名。 .m
文件可以同时包含 Objective-C 和 Objective-C ++ 类。为了避免在混合使用场景中两者之间发生冲突,约定将所有 Objective-C ++ 类文件重命名为.mm
。这有助于编译器进行区分。
因此,在同时使用 Objective-C 和 Objective-C ++ 的项目中,您将看到:
.m
个文件
包含 Objective-C ++ .mm
个文件