【问题标题】:Objective-C++ Not CompilingObjective-C++ 不编译
【发布时间】:2012-10-05 16:27:30
【问题描述】:

我正在尝试为 ios 构建一个应用程序。我已经有一个用 C++ 编写的库,我想在我的应用程序中使用它。所以很自然我需要写一些 Objective-C++。
我从以下简单文件中得到了一些奇怪的错误:
引擎.mm:

#import <Foundation/Foundation.h>

是的……
这些是我遇到的错误:

CFCalendar.h:70:28: Missing ',' between enumerators
CFCalendar.h:71:28: Redefinition of enumerator '__AVAILABILITY_INTERNAL__IPHONE_5_0'
CFError.h:69:43: Expected ';' after top level declarator
fatal error: too many errors emitted, stopping now

您可以猜到,这些错误还有很多。
这是我的配置:

编译器:Apple LLVM 4.1。
C 方言:GNU99
C++ 方言:GNU++98
C++ 标准库:libstdc++(GNU C++ 标准库)
编译源为:根据文件类型

我尝试了许多其他变体,但没有一个适合我。
任何建议将不胜感激。

谢谢,塔尔

【问题讨论】:

  • 是的。正如问题中所说,该文件名为 Engine.mm

标签: c++ objective-c compilation compiler-errors objective-c++


【解决方案1】:

最后证明是一个 Xcode 错误。我只是删除了该文件并再次创建它,它工作。

【讨论】:

    【解决方案2】:

    根据错误:

    CFCalendar.h:71:28: Redefinition of enumerator '__AVAILABILITY_INTERNAL__IPHONE_5_0'
    

    当我在 .m 和 .h 文件中导入标头时,我看到了类似的重新定义错误。不确定这是否是您的问题,您可以发布 .mm 和 .h 的导入的 sn-ps 吗?

    【讨论】:

    • .mm 不包括 Foundation.h 之外的任何内容。我试图通过从 .mm 中删除包含来缩小错误范围。
    • 您的 .mm 文件有自己的头文件吗?或者它是一个单一的源文件?
    • 前缀头文件(扩展名为.pch的文件)的内容是什么?
    猜你喜欢
    • 2011-01-21
    • 2013-07-15
    • 2015-09-25
    • 2016-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多