Компилировать библиотеку C как фреймворк для iPhone? - PullRequest
12 голосов
/ 17 марта 2011

Каждая библиотека C / C ++ имеет некоторое количество заголовков, которые следует использовать с этой библиотекой. А если вы используете более 1-2 библиотек, пользовательские пути к заголовкам являются головной болью.

Итак, я подумал: есть ли способ компилировать библиотеки C в качестве фреймворков. Статическая библиотека + заголовки + управление версиями.

Я нашел в шаблоне XCode для фреймворка Cocoa, но ничего о построении фреймворка iPhone. Этот простой шаг может позволить разработчикам создавать и делиться друг с другом фреймворками с помощью некоторого интересного кода.

Также было бы здорово использовать libpng, libjpeg и другие библиотеки, упакованные в качестве фреймворков.

Я не буду использовать динамические библиотеки в этих рамках. Будет присутствовать только статическая версия.

Ответы [ 3 ]

5 голосов
/ 25 марта 2011

Я объединил методы, которые нашел здесь и здесь в моей библиотеке с открытым исходным кодом здесь ( ПРИМЕЧАНИЕ - с тех пор я удалил соответствующиеСкрипты из этого проекта. Я обновил ссылку, чтобы указать на последнюю ревизию, включающую эти методы.).Подумайте, это в основном то решение, которое вы ищете.

По сути, у него есть цель, которая создаст толстую статическую библиотеку (липосборки для arm6, arm7 и i386).У него есть еще одна цель, которая берет эту библиотеку и встраивает ее в каркас.

Нет причин, по которым вы не можете использовать те же методы для C-проекта.Фактически я начал работу по переносу C анализатора XML VTD на среду Objective C, используя те же методы.

2 голосов
/ 17 марта 2011

Фреймворки - это в основном просто пакеты динамических / разделяемых библиотек.Поскольку это не разрешено в App Store, вы должны создавать статические библиотеки и связывать их с исполняемым файлом вашего приложения во время компиляции.

Однако, чтобы немного облегчить задачу, вы можете создать проект Xcode для каждогобиблиотека и скомпилировать каждую библиотеку в статическую библиотеку.Другим способом было бы поместить все необходимые исходные файлы в основной проект XCode и настроить его соответствующим образом, чтобы он все собирался сразу (я сделал это с небольшими библиотеками, такими как Minizip, например).1005 *

1 голос
/ 21 марта 2011

проблема, которую вы пытаетесь создать, уже существует - она ​​называется DLL ад

Лучший способ - придерживаться простых старых статических библиотек при создании небольших приложений и организации структуры источника / заголовков

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