/ / ios objective-cプロジェクトで単一のC ++ヘッダーファイルをインポート、使用、コンパイルする - c ++、objective-c、ios、xcode

ios objective-cプロジェクトで単一のc ++ヘッダーファイルをインポート、使用、コンパイルする - c ++、objective-c、ios、xcode

私は答えが簡単だと確信していますが、私は次の問題に直面しています...

このC ++ヘッダーファイルを使用したい CAAudioUnitOutputCapturer.h ios objective-c xcodeプロジェクトの中に(.hファイルしかありません)。

誰かがコンパイルエラーを排除する方法を教えてくれて、Objective-Cのコンテキストでどのように使用するかの例を教えてください。

編集、私はこのエラーがある:

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

回答:

回答№1は4

現時点では、コンパイラはファイルを純粋なObjective Cとしてビルドしようとしていますが、これはこれらのエラーを引き起こしています。コンパイルするファイルの名前を次のように変更します。 myFile.mmmm 拡張)。これにより、コンパイラはこれをObjective C ++コードと見なします。このコードは、あなたが含まれているヘッダのおかげであります。


回答№2の場合は1

CAAudioUnitOutputCapturerクラスを使用するファイルは、Objective-Cの代わりにObjective-C ++でなければなりません。 .mの代わりに.mmの拡張子を使用することでそれを行います。

.mmファイルでは、Objective-CクラスとC ++クラスを混在させることができます。

ここに Objective-C ++に関するいくつかの情報です。


回答№3の場合は1

あなたが使用しているファイル CAAudioUnitOutputCapturer.h Objective C ++ファイル(デフォルトの拡張子 .mm)、またはC ++ファイル(拡張子 .cpp または .cc)。 Objective Cでそれらを使用しようとすると(拡張子 .m)ファイルは、コンパイラがC ++ではなくObjective Cを期待しているので、エラーが発生します。

オブジェクトファイルまたはライブラリファイルに(コンパイルされた)コードが含まれていれば幸いです CAAudioUnitOutputCapturer クラス、そうでなければあなた .h ファイルは役に立たない。