Импорт, использование и компиляция одного заголовочного файла c ++ в проекте ios target-c - PullRequest
2 голосов
/ 05 сентября 2011

Я уверен, что ответ прост, но я столкнулся со следующей проблемой ...

Я хочу использовать этот заголовочный файл c ++ CAAudioUnitOutputCapturer.h (есть только a.файл h) внутри проекта icode target-c xcode.

Может кто-нибудь сказать мне, как устранить ошибки компиляции, и дать пример использования в контексте Objective-C?

Edit , я получил эту ошибку:

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

Ответы [ 3 ]

4 голосов
/ 05 сентября 2011

В данный момент компилятор пытается построить ваш файл как чистый Objective C, что вызывает эти ошибки.Переименуйте файл, в который вы его компилируете, как myFile.mm (обратите внимание на расширение mm).Это заставит компилятор рассматривать его как код Objective C ++, который в силу включаемого вами заголовка таков.

1 голос
/ 05 сентября 2011

Файлы, в которых вы используете CAAudioUnitOutputCapturer.h, должны быть либо файлами Objective C ++ (расширение по умолчанию .mm), либо файлами C ++ (расширение .cpp или .cc). Если вы попытаетесь использовать их в файле Objective C (расширение .m), вы получите ошибки, так как компилятор ожидает Objective C, а не C ++.

Надеюсь, у вас есть объектный файл или файл библиотеки, который содержит (скомпилированный) код для класса CAAudioUnitOutputCapturer, в противном случае ваш файл .h бесполезен.

1 голос
/ 05 сентября 2011

Любые файлы, которые используют классы CAAudioUnitOutputCapturer, должны быть Objective-C ++ вместо Objective-C.Вы делаете это, используя расширение .mm вместо .m.

В файлах .mm вы можете смешивать классы Objective-C и классы C ++.

Здесь - это некоторыеинформация относительно Objective-C ++.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...