Цель-C++ и.cpp файлы в Xcode


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

Тест.h

class Test {

};

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

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

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

4 2

4 ответа:

Ответ Helixed не поможет, ваш класс будет просто пропущен препроцессором, если _ _ cplusplus не определен.

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

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

#ifdef __cplusplus

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

#ifdef __cplusplus

class Test {

};

#endif

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

Apple LLVM 6.0 - Language -> Compile Sources As

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