我试图在我自己的iPhone应用程序中重用Apple的Speak Here sample code。我没有问题地下载并编译了该项目,因此我将一些文件添加到了自己的应用程序中。当我尝试编译自己的应用程序时,编译器给了我

MeterTable.h:54:错误:“ MeterTable”之前的语法错误

相关代码为:

#include <stdlib.h>
#include <stdio.h>
#include <math.h>

class MeterTable  // line 54
{
public:


看起来xcode无法将MeterTable.h和MeterTable.mm识别为C ++文件。不过,我已经检查了File >> GetInfo的MeterTable.mm,它列出了文件类型为sourcecode.cpp.cpp。

为什么不编译?

最佳答案

您将MasterTable.mm以外的非C ++文件包含“ MeterTable.h”。
错误不在'MeterTable.h'中,而是在其前面的标头中。请注意,如果<stdlib.h> ...之前已包含,则可以是noop。


如果要确保文件是使用C ++编译的,可以将此代码添加到MasterTable.mm的开头:

#ifdef __cplusplus
#error "compiled as C++"
#else
#error "compiled as C"
#endif

关于c++ - xcode在cpp代码上给出语法错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/856617/

10-11 18:35