Как скомпилировать определенные файлы в objective-c ++, а остальная часть проекта в objective-c

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

Аксессуар был снабжен SDK, написанным на (Objective?) С++, и я выполнил инструкции, предоставленные для установки XCode в "Скомпилировать источники как: Objective-C ++" и добавил "-Obj-С++" в "Other флаги компоновщиков.

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

Вопрос: есть ли способ скомпилировать только класс из SDK как С++, а остальная часть проекта - как objective-c?

Изменить: файлы SDK состоят только из .h(и связанной библиотеки)

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

Ответы

Ответ 1

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

Ответ 2

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

Selecting File Type from the file inspector

Ответ 3

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

  • Вы должны установить "В соответствии с типом файла" на "Укомплектовать источники как",
  • Установите "-ObjС++" в "Другие флаги компоновщика"
  • Последнее, вы должны изменить суффикс файлов на .mm, что ссылка метод библиотеки