Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/151.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ xcode给出了cpp代码的语法错误_C++_Iphone_Xcode - Fatal编程技术网

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

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 {

我试图在我自己的iPhone应用程序中重复使用苹果的Speak。我下载并编译了这个项目,没有任何问题,因此我将一些文件添加到了我自己的应用程序中。当我试图编译自己的应用程序时,编译器会给我

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

有关守则如下:

#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++上下文中。如果将“错误”更改为“警告”,则应同时看到这两个选项