C++ xcode给出了cpp代码的语法错误
我试图在我自己的iPhone应用程序中重复使用苹果的Speak。我下载并编译了这个项目,没有任何问题,因此我将一些文件添加到了我自己的应用程序中。当我试图编译自己的应用程序时,编译器会给我 MeterTable.h:54:error:MeterTable之前的语法错误 有关守则如下:C++ xcode给出了cpp代码的语法错误,c++,iphone,xcode,C++,Iphone,Xcode,我试图在我自己的iPhone应用程序中重复使用苹果的Speak。我下载并编译了这个项目,没有任何问题,因此我将一些文件添加到了我自己的应用程序中。当我试图编译自己的应用程序时,编译器会给我 MeterTable.h:54:error:MeterTable之前的语法错误 有关守则如下: #include <stdlib.h> #include <stdio.h> #include <math.h> class MeterTable // line 54 {
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
class MeterTable // line 54
{
public:
看起来好像XCODE不能识别可计量的.H和MeterTable.mm作为C++文件。不过,我已经检查了MeterTable.mm的文件>>GetInfo,它将文件类型列为sourcecode.cpp.cpp
为什么不编译?尝试用extern C{}括起include指令尝试用extern C{}括起include指令 在MasterTable.mm以外的非C++文件中,包括了可计量的.h。 错误不在“MeterTable.h”中,但在其前面包含的标头中。请注意。。。如果之前包含,则可以是noop。如果你想确保你的文件是用C++编译的,你可以把这个代码添加到MaxTaby的开始。
#ifdef __cplusplus
#error "compiled as C++"
#else
#error "compiled as C"
#endif
在MasterTable.mm以外的非C++文件中,包括了可计量的.h。
错误不在“MeterTable.h”中,但在其前面包含的标头中。请注意。。。如果之前包含,则可以是noop。
如果你想确保你的文件是用C++编译的,你可以把这个代码添加到MaxTaby的开始。
#ifdef __cplusplus
#error "compiled as C++"
#else
#error "compiled as C"
#endif
执行以下操作,然后尝试: 转到构建设置并搜索编译源,如下所示 根据文件类型选择 如果您在任何一个Objective C类中包含CPP文件,那么它的实现类应该是.mm,只需将扩展名从.m更改为.mm即可。 请记住,即使按层次结构使用CPP代码,也需要将扩展名更改为.mm。
执行以下操作,然后尝试: 转到构建设置并搜索编译源,如下所示 根据文件类型选择 如果您在任何一个Objective C类中包含CPP文件,那么它的实现类应该是.mm,只需将扩展名从.m更改为.mm即可。 请记住,即使按层次结构使用CPP代码,也需要将扩展名更改为.mm。
我将您发布的源代码放入文件MeterTable.h中,添加了一个文件MeterTable.mm,其中只包含main并编译了它。没有错误。我们需要一个复制错误的示例,否则帮助将是不可能的。我将您发布的源代码放入文件MeterTable.h中,添加了一个文件MeterTable.mm,其中只包含main并编译了它。没有错误。我们需要一个复制错误的样本,否则帮助将是不可能的。谢谢!你说得对,我在一个非C++文件中包含了MeterTable.h。有趣的是,我在你的代码中删除了,但是我仍然得到了编译为C++的错误。不知道那里发生了什么。不管怎样,我已经回到正轨,非常感谢!同样,头文件将包含在C++和非C++上下文中。如果您将“错误”更改为“警告”,您将看到两个提示!你说得对,我在一个非C++文件中包含了MeterTable.h。有趣的是,我在你的代码中删除了,但是我仍然得到了编译为C++的错误。不知道那里发生了什么。不管怎样,我已经回到正轨,非常感谢!同样,头文件将包含在C++和非C++上下文中。如果将“错误”更改为“警告”,则应同时看到这两个选项