[英]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
声明?
我认为如果编译器不知道EKType
或P_UINT_32
您也会收到类似的错误。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.