Objective-C ++ и .cpp файлы в Xcode - PullRequest
       0

Objective-C ++ и .cpp файлы в Xcode

2 голосов
/ 13 сентября 2010

Я пытаюсь сделать простое приложение Objective-C ++.Весь мой код прекрасно компилируется, включая использование C ++ в классах Objective-C, пока я не попытаюсь добавить в смесь класс C ++.Я создал простой класс C ++:

Test.h

class Test {

};

и включил этот файл в класс Objective-C (с расширением .mm), и я получил следующую сборкуошибка:

error: expected '=', ',', ';', 'asm' or '__attribute__' before 'Test'

Очевидно, я упускаю здесь простую концепцию.Я был бы признателен за некоторое просвещение.

Ответы [ 4 ]

2 голосов
/ 15 сентября 2010
Ответ

helixed не поможет, ваш класс будет просто пропущен препроцессором, если __cplusplus undefined.

Больше всего вы пытаетесь включить класс C ++ из файла * .m, попробуйте переименовать его в * .mm,Это решит ту же проблему на моей стороне.

2 голосов
/ 17 января 2011

Не должна ли команда препроцессора быть:

#ifdef __cplusplus
2 голосов
/ 13 сентября 2010

Что ж, после более тщательного сканирования по Документации Apple это выглядит как ответ на использование флага препроцессора __cplusplus в заголовочном файле. Вот как теперь выглядит код:

#ifdef __cplusplus

class Test {

};

#endif
0 голосов
/ 21 января 2015

В Xcode 6 есть следующая опция:

Apple LLVM 6.0 - Language -> Compile Sources As

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

...