Custom Framework: связать двоичные файлы с библиотеками - PullRequest
0 голосов
/ 01 февраля 2012

Я разработал свой собственный фреймворк для iPhone. Среди моих классов есть классы для управления базами данных SQLite. Поэтому мне нужно связать мою структуру с libsqlite3.dylib. Компиляция / создание фреймворка работает, но когда я связываю свой пользовательский фреймворк в приложении и компилирую его, я получаю такие ошибки, как:

Неопределенные символы для архитектуры i386: "_sqlite3_open", ссылка от: - [CSQLite open: ext: copyDataBase:] в CUtils (CSQLite.o) "_sqlite3_create_function", на которую ссылаются из: - [CSQLite open: ext: copyDataBase:] в CUtils (CSQLite.o) "_sqlite3_value_text", на который ссылаются из: _sql_regexp в CUtils (CSQLite.o) "_sqlite3_result_int", на который ссылаются из: _sql_regexp в CUtils (CSQLite.o) "_sqlite3_close", на который ссылаются из: - [CSQLite close] в CUtils (CSQLite.o) "_sqlite3_prepare", на который ссылаются из: - [CSQLite query: Rows:] в CUtils (CSQLite.o)

При связывании libsqlite3.dylib в моем приложении ошибки исчезли.

Есть ли способ связать libsqlite3.dylib непосредственно внутри моей собственной платформы или мне всегда нужно добавлять libsqlite3.dylib в приложение?

1 Ответ

4 голосов
/ 01 февраля 2012

Ваш фреймворк использует фреймворк sqlite3, когда вы отправляете фреймворк сторонним разработчикам, просто документируйте, что им также нужно связать проект с sqlite3.Другого пути нет.

Лучший пример - ASIHttp: они не упаковывают код в каркас или статическую библиотеку, но если вы хотите его использовать, вам нужно связать свой проект с каркасом, которым они являются.с помощью.

...