将C ++代码添加到iOS项目

时间:2013-10-02 13:38:32

标签: c++ objective-c xcode

我正在尝试将C ++库添加到iOS项目中。我将源代码文件添加到项目中,但似乎它们不像C ++代码那样被解释。

例如,我在头文件中收到以下错误:

namespace soundtouch // Unknown type name 'namespace'
{

我已经尝试将文件检查器中的类型更改为“C ++ Source”和“C ++ Header” - 没有任何更改。

如何将C ++库导入XCode项目?

2 个答案:

答案 0 :(得分:7)

C ++源文件必须具有可识别的扩展名; .cpp.cxx.cc等等,它们将被编译为C ++文件。如果在添加文件时扩展名正确(并已识别),则无需手动更改文件类型。编译语言是基于每个模块确定的。

混合C ++和Objective-C是一个不同的故事。在Objective-C ++的ADC文档中有一整节(使用.mm扩展名)。因此,如果您想从Objective-C调用C ++代码,则需要从.mm模块完成。

鉴于您引用的错误,看起来您可能正在尝试在Objective-C模块中包含C ++头文件。要使其工作,您需要将Objective-C模块重命名为.mm,然后编译器将其视为Objective-C ++。

需要一些计划来确定C ++和Objective-C代码之间的清晰边界,但值得一些前瞻性思考。

这篇文章值得一读:

答案 1 :(得分:4)

直接或间接地.m任何C ++头文件的每个Objective-C实现文件(#import)必须通过将其文件扩展名更改为Objective-C ++实现文件来更改为.mm