在 Xcode 中,我创建了一个“Cocoa 应用程序”项目。它的依赖项之一是包含 C++ 代码的框架。我将 AppDelegate.m 重命名为 AppDelegate.mm 并包含了框架。
该项目无法编译。问题是框架中的 C++ 头文件使用了一些与 Objective-C 或 Cocoa 冲突的符号。
- C++ 头文件定义了名为
verify()
and的函数check()
,这与 MacOSX10.8 SDK 中的 /usr/include/AssertMacros.h 冲突。 - C++ 头文件包含一个名为 的变量
NO
,它与 Objective-C 宏冲突NO
。
一种解决方法是修改框架中的 C++ 代码以避免这些冲突。但由于它是由另一个组织维护的大型 C++ 项目,这将需要时间,并且可能会在 C++ 项目的未来更新中中断。
有没有办法告诉 Clang/Xcode 将这些 C++ 头文件视为 C++ 而不是 Objective-C++?