1

我尝试将 C++ 库导入 XCode,我将 .cpp 重命名为 .mm,但是当我尝试编译时,它显示如下错误:

DateOps.h:23:错误:在 'DateOps' 之前需要 '='、','、';'、'asm' 或 '_属性_'

DateOps.h 文件的开头

#if !defined( DATE_OPS__H )
#define DATE_OPS__H

typedef int MonthDays[13];

typedef long YearEndDays[2];

class DateOps {
public:
  enum CalendarType {
    T_GREGORIAN = 0,
    T_JULIAN = 1,
  };

...

4

2 回答 2

1

如果您只需要将几个文件编译为 Objective-C++,那么WrightsCS 给出的答案就可以正常工作。但是,如果您有很多文件要以这种方式编译,或者认为您的项目将来会变得更大,您可以更改所有文件的编译语言:

转到目标的Build Settings,在Language部分下查找名为Compile Sources As的设置。通常它设置为“根据文件类型”(它应该与 .mm 扩展名一起使用,但我之前看到过它仍然编译为 Objective-C 的错误)。您可以通过更改此设置将其强制为“Objective-C++”。

于 2012-05-15T15:05:47.773 回答
0

您需要在您所指的 .mm 文件上设置-x objective-c++编译器标志。

在此处输入图像描述

于 2012-05-15T14:57:01.900 回答