Как скомпилировать конкретные файлы в Objective-C ++ и остальной проект в Objective-C - PullRequest
17 голосов
/ 22 апреля 2011

В настоящее время я занят в проекте, где мне нужно использовать внешний аксессуар для чтения тегов Mifare 1k .

Аксессуар был снабжен SDK, написанным на (Objective?) C ++, и я следовал инструкциям, указанным для установки XCode на «Компилировать исходники как: Objective-C ++», и добавил «-Obj-C ++» в «Флаги других компоновщиков» .

SDK компилируется нормально, но проблема в том, что я уже использую несколько библиотек в проекте (например, ASIHTTPRequest, JSONKit, ...), и у меня возникают проблемы компиляции из-за этих новых настроек в этих библиотеках. Если я вернусь к предыдущим настройкам, у меня возникнут проблемы с компиляцией в SDK читателя

Вопрос в том, есть ли способ компилировать только класс из SDK как C ++, а остальную часть проекта - как target-c?

Редактировать: Файлы SDK состоят только из .h (и связанной библиотеки)

спасибо за вашу помощь, Mike

Ответы [ 3 ]

24 голосов
/ 22 апреля 2011

Выберите файл, который вы хотите скомпилировать как Objective C ++ из файлового навигатора, а затем выберите Тип файла в представлении инспектора файлов.Это в Xcode 4, но есть аналогичный механизм в Xcode 3.

Selecting File Type from the file inspector

6 голосов
/ 22 апреля 2011

Попробуйте переименовать файлы, в которых вы находитесь , включая заголовки библиотеки в myClass.h для интерфейса и myClass.mm для файлов реализации. Это заставляет файлы быть скомпилированными как target-c ++.

4 голосов
/ 20 апреля 2012

Я решил эту проблему:

  1. Вам следует установить «По типу файла» на «Компилировать источники как»,
  2. Установить "-ObjC ++" на "Другие флаги компоновщика"
  3. Последнее, вы должны изменить суффикс файлов на .mm, что ссылка метод библиотеки
...