我在 XCode 项目中有一些 C++ 源文件(扩展名为 .mm)。我试图只编译那些纯 C++(不使用 objc 语法或可可运行时)并在 Android NDK 构建(NDK r8d)中编译它们。问题似乎是 g++ 甚至不会将 .mm 文件视为 C++ 并且会失败:
arm-linux-androideabi-g++: error: Objective-C++ compiler not installed on this system
我试过:
1. LOCAL_CPP_EXTENSION := .mm (在 Android.mk 中) - 没有帮助。
2. 搜索有关如何接受自定义文件扩展名的 g++ 文档 - 找不到任何内容。
我真的很想找到一种方法来强制 NDK/g++ 接受 .mm 文件,但对其他想法持开放态度,例如:
- 将 Android 项目的 .mm 复制并重命名为 .cpp - 我不喜欢这样,因为它会使构建和版本控制复杂化,但它似乎是最基本的可行方法。
- 将其构建为静态库(使用 xcode) - 我尝试去那里,但我不确定要构建哪种架构,或者它是否有意义。
- 其他的?
有没有人对此有一些经验或想法?谢谢。
解决方案(见接受的答案)
LOCAL_CFLAGS += -x c++