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

Import, use and compile a single c++ header file in an ios objective-c project

本文关键字:编译 单个 c++ 文件 objective-c ios 项目 导入      更新时间:2023-10-16

我相信答案很简单,但我面临着以下问题…

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

有人能告诉我如何消除编译错误,并给我一个例子,如何在Objective-C上下文中使用?

编辑,我得到这个错误:

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

目前,编译器正试图将您的文件构建为纯Objective C,这导致了这些错误。将要编译的文件重命名为myFile.mm(注意mm扩展名)。这将迫使编译器将其视为Objective c++代码,由于您包含的头文件,它确实是。

任何使用caaudiounitoutputcapture类的文件必须是objective - c++而不是Objective-C。您可以使用。mm扩展名来代替。m。

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

这里是一些关于objective - c++的信息

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

我希望你有包含CAAudioUnitOutputCapturer类(编译)代码的对象文件或库文件,否则你的.h文件是无用的。