我确定答案很简单,但我面临以下问题......
我想在ios objective-c xcode项目中使用这个c ++头文件CAAudioUnitOutputCapturer.h(只有一个.h文件)。
有人可以告诉我如何消除编译错误并给我一个如何在Objective-C上下文中使用的示例吗?
编辑,我收到此错误:
CAAudioUnitOutputCapturer.h:64: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'CAAudioUnitOutputCapturer'
答案 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
文件将无用。