3

我正在尝试制作一个简单的 Objective-C++ 应用程序。我所有的代码都编译得很好,包括在 Objective-C 类中使用 C++,直到我尝试添加一个 C++ 类。我创建了一个简单的 C++ 类:

测试.h

class Test {

};

并将此文件包含在 Objective-C 类中(扩展名为 .mm),我收到以下构建错误:

error: expected '=', ',', ';', 'asm' or '__attribute__' before 'Test'

显然我在这里遗漏了一些简单的概念。我会很感激一些启示。

4

4 回答 4

2

所需的预处理器命令不应该是:

#ifdef __cplusplus
于 2011-01-17T15:30:57.370 回答
2

好吧,在仔细扫描Apple 的文档之后,它看起来像是__cplusplus在头文件中使用预处理器标志的答案。这是代码现在的样子:

#ifdef __cplusplus

class Test {

};

#endif
于 2010-09-13T08:05:29.733 回答
2

helixed 的回答无济于事,如果 __cplusplus 未定义,您的类将被预处理器跳过。

最重要的是,您尝试从 *.m 文件中包含 C++ 类,尝试将其重命名为 *.mm。这解决了我这边的同样问题。

于 2010-09-15T12:39:06.637 回答
1

在 Xcode 6 中有以下选项:

Apple LLVM 6.0 - Language -> Compile Sources As

您可以将其设置为 Objective-C++,然后文件扩展名无关紧要。如果您正在跨平台工作并且需要使用其他文件扩展名,这将特别有用。

于 2015-01-21T17:17:40.443 回答