繁体   English   中英

在iPhone项目中包含C ++代码时出现编译器错误

[英]Compiler error when including C++ code in the iPhone project

我试图在我的iPhone项目中包含一些C ++代码,但出现以下编译器错误:

“错误:'<'标记之前的预期初始化程序”

在此代码构造中:

  template<typename T, P_UINT_32 BEG, bool OQ, bool OVR, bool DBG>
  P_UINT_32 EKType<T, BEG, OQ, OVR, DBG>::getSizeX() const {
    return n;
  }

看起来XCode编译器无法将其识别为有效的C ++语法。 我已经用.h和.mm命名了我的C ++文件,并将文件的类型设置为sourcecode.cpp.h和sourcecode.cpp.cpp

任何人都知道为什么我会收到此错误?

您可能在某个地方的.M文件中包含标题。 这些东西如何被引入,真是令人惊讶,因此请确保将所有 .M文件都重命名为.MM。

如果文件同时包含Objective-C和C ++,则只需将文件命名为.mm。

如果文件仅包含C ++,则扩展名为.cpp

如果文件是ObjC和C ++的混合文件,则文件扩展名为.mm且其类型设置为sourcecode.cpp.objcpp

您确定要编译的源文件是否包含EKType类(或struct)的声明和P_UINT_32声明?

我认为如果编译器不知道EKTypeP_UINT_32您也会收到类似的错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM