在ios objective-c项目中导入,使用和编译单个c ++头文件

时间:2011-09-05 17:04:46

标签: c++ objective-c ios xcode

我确定答案很简单,但我面临以下问题......

我想在ios objective-c xcode项目中使用这个c ++头文件CAAudioUnitOutputCapturer.h(只有一个.h文件)。

有人可以告诉我如何消除编译错误并给我一个如何在Objective-C上下文中使用的示例吗?

编辑,我收到此错误:

CAAudioUnitOutputCapturer.h:64: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'CAAudioUnitOutputCapturer'

3 个答案:

答案 0 :(得分:4)

目前,编译器正在尝试将您的文件构建为纯Objective C,这会导致这些错误。将要编译的文件重命名为myFile.mm(请注意mm扩展名)。这将迫使编译器将其视为目标C ++代码,它根据您所包含的标题来实现。

答案 1 :(得分:1)

使用CAAudioUnitOutputCapturer类的任何文件都必须是Objective-C ++而不是Objective-C。你可以使用.mm扩展名代替.m。

在.mm文件中,您可以混合使用Objective-C类和C ++类。

Here是关于Objective-C ++的一些信息。

答案 2 :(得分:1)

使用CAAudioUnitOutputCapturer.h的文件必须是Objective C ++文件(默认扩展名.mm)或C ++文件(扩展名.cpp.cc)。如果您尝试在Objective C(扩展.m)文件中使用它们,您将收到错误,因为编译器期望Objective C而不是C ++。

我希望您拥有包含CAAudioUnitOutputCapturer类的(已编译)代码的目标文件或库文件,否则您的.h文件将无用。