Могу ли я скомпилировать свой класс c ++ в статическую библиотеку (.a) для использования в моем проекте iPhone? - PullRequest
0 голосов
/ 19 июля 2011

Из-за того, что мой класс обработки изображений написан на c ++, и я хочу использовать его в своем проекте iPhone, можно ли скомпилировать этот класс c ++ в статическую библиотеку (.a) и использовать его в моем проекте iPhone? Я также хочу узнать о команде для компиляции исходного файла c ++ в статическую библиотеку (.a) в Mac OS-X и о том, как мы вызываем функцию c ++, скомпилированную в статическую библиотеку (.a) в Xcode.

Большое спасибо.

Ответы [ 2 ]

3 голосов
/ 19 июля 2011

Чтобы сделать вашу жизнь проще, вы можете напрямую включить исходный файл C ++ в свой проект Xcode.Фактически, если вы назовете ваши файлы Objective-C с расширением .mm, они смогут напрямую использовать исходный код C ++ (на самом деле это называется Objective C ++).

С другой стороны, вы можетеСоздайте статическую библиотеку с вашим классом обработки и свяжите ее с вашей целью, но все же вам нужно будет использовать Objective C ++ (т.е. расширения .mm), так как вам все равно нужно будет включить заголовочные файлы C ++ и использовать ABI компилятора (двоичный интерфейс) для ссылки на двоичный файл C ++.

Создание статической библиотеки из исходного кода C ++ ничем не отличается от создания статической библиотеки из кода C или Objective-C (поскольку создание статической библиотеки - это просто компиляция + архивирование).

Смотрите также этот пост из SO , чтобы узнать больше о процессе создания универсальной статической библиотеки.

1 голос
/ 19 июля 2011

Да, вы можете.

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

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