如何将单个头文件设置为C++;Xcode中的编译器? 我的Objto-C项目中有一些C++文件。为了在头文件中使用STL,我在“构建设置”中将项目设置设置为将源代码编译为Objective-C++
但是现在,我想在我的项目中使用RegexKitLite。我发现RegexKitLite在Objective-C++模式下给出了一个编译错误,但在Objective-C模式下或在“根据文件类型”模式下自动确定时确实正确编译 我的问题是:如何将单个头文件设置为C++;Xcode中的编译器? 我的Objto-C项目中有一些C++文件。为了在头文件中使用STL,我在“构建设置”中将项目设置设置为将源代码编译为Objective-C++,objective-c,xcode,header-files,objective-c++,regexkitlite,Objective C,Xcode,Header Files,Objective C++,Regexkitlite,但是现在,我想在我的项目中使用RegexKitLite。我发现RegexKitLite在Objective-C++模式下给出了一个编译错误,但在Objective-C模式下或在“根据文件类型”模式下自动确定时确实正确编译 我的问题是: > p>如何设置一个单独的头文件作为C++编译?(我在Identity and Type中将文件类型设置为“C++头”,但没有效果。) 如何使用“Objective-C++”中的RegexKitLite 标题不是defaut指定的。 .cpp使用cpp编译器和.
标题不是defaut指定的。 .cpp使用cpp编译器和.mm obj c。 所以如果你有一个错误,可能是因为你使用了一个C++,它不能编译在目标C中(但我认为这是不可能的)。 最好在C++标题中使用包含Objc声明的标题。< /P>
将代码分离为仅包含CPP文件中C++兼容的代码 标题不由DavaT指定。 .cpp使用cpp编译器和.mm obj c。 所以如果你有一个错误,可能是因为你使用了一个C++,它不能编译在目标C中(但我认为这是不可能的)。 最好在C++标题中使用包含Objc声明的标题。< /P>
将代码分离为仅包含CPP文件中C++兼容的代码 头文件不是编译单元(它们不是自己编译的,而是只包含在其他文件中),因此设置类型对编译没有任何影响。
如果从一些C++编译文件中包含头,则用C++编译器编译。
类似地,如果包含与Objective-C文件完全相同的头文件,则将使用Objective-C编译器对其进行编译。头文件不是编译单元(它们不是自己编译的,只是包含在其他文件中),因此设置类型对编译没有任何影响
如果从一些C++编译文件中包含头,则用C++编译器编译。
类似地,如果包含与Objective-C文件完全相同的头文件,它将使用Objective-C编译器进行编译。我记得,
.m
文件是Objective-C,而.mm
文件是Objective-C++?因为我使用stl::map来声明某种类型,所以我需要包含在头文件中。我不认为在obj c++文件中包含映射是危险的。也许你在obj c(非c++)文件中使用它?我记得.m
文件是Objective-c,而.mm
文件是Objective-c++?因为我使用stl::map来声明某种类型,所以我需要包含在头文件中。我认为在obj c++文件中包含map并不危险。也许你在OBJC(非c++)文件中使用它?