xcode给出了cpp代码的语法错误

时间:2009-05-13 07:47:55

标签: c++ iphone xcode

我正在尝试在自己的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 ++文件。我已经检查了文件&gt;&gt; GetInfo for MeterTable.mm,它将文件类型列为sourcecode.cpp.cpp。

为什么不编译?

3 个答案:

答案 0 :(得分:3)

做以下事情,然后尝试:

  1. 转到构建设置并搜索“将源代码编译为”
  2. 选择“根据文件类型”
  3. 如果您在任何Objective C类中包含CPP文件,则其实现类应为.mm,只需将其扩展名更改为.mm from.m.
  4. 请记住,即使您按层次使用CPP代码,也需要将扩展​​名更改为.mm。

答案 1 :(得分:1)

  1. 您在MasterTable.mm以外的非C ++文件中包含“MeterTable.h”。
  2. 错误不在'MeterTable.h'中,而是在其前面的标题中。请注意,<stdlib.h> ...如果之前包含它们,则可以是noop。
  3. 如果你想确保你的文件是用C ++编译的,你可以将这段代码添加到MasterTable.mm的开头:

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

答案 2 :(得分:0)

尝试用#include

附上extern "C" { }个指令