Как добавить функции C / C ++ в код Objective-C (связанный с iphone) - PullRequest
2 голосов
/ 01 июля 2011

Я добавил файлы .h / .cpp с функциями C в свой проект Xcode. Как бы я вызвал функцию C в функции target-C?

Когда я включил файл C (#import "example.h") в заголовочный файл делегата приложения, он взорвался с ошибками (возможно, он обработал файл cpp как target-c), даже если он компилируется нормально без включения /imported.

Спасибо

Редактировать: переименование всех файлов от m до mm решило проблему. Однако я получаю ошибку компоновщика при сборке (ld: дублированный символ) ... Лучше сначала исследовать это. Еще раз спасибо всем.

Ответы [ 3 ]

7 голосов
/ 01 июля 2011

Если вы хотите использовать C ++ с вашим модулем Objective-C, измените расширение файла с .m на .mm.

6 голосов
/ 01 июля 2011
  • Чтобы использовать простой C в Objective-C просто включить заголовок / исходный файл как обычные и вызывающие функции. C файлы могут использовать стандартное расширение .h и .c. Много библиотеки уже используются таким образом такие как libxml и sqlite.

  • Для написания кода C, который можно использовать Objective-C (доступ FoundationFramework) это нужно будет помещаться в файл .m. A .m файл может содержать все функции C так же, как main.m генерируется с новым проекты.

  • Для вызова кода C ++ C ++ может быть в .cpp (или другое действительное расширение), но ваш файл Objective-C нуждается в добавочный .mm для его вызова и один раз снова просто включите заголовочный файл. И использовать Objective-C внутри Классу C ++ понадобится .mm расширение.

2 голосов
/ 01 июля 2011

C функции должны вызываться без каких-либо специальных действий.Objective-C - это расширенный набор C.

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

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