libsqlite в симуляторе и компиляции iOS - PullRequest
12 голосов
/ 02 октября 2011

У меня проблемы с компиляцией приложения для iOS. Я использую sqlite3 и импортируется как

#import <sqlite3.h>

Ну, я только нашел файл с именем libsqlite3.0.dylib на моем Mac и скопировал его в свой проект. Когда я компилирую его для iOS Simulator, он работает просто отлично. Однако, когда я пытаюсь скомпилировать приложение для устройства iOS, оно выдает ошибку (Apple Match-O Linker Error) при каждом вызове, который я выполняю в своей реализации, функции sqlite (такой как _sqlite3_open и т.

Как мне скомпилировать его на устройстве iOS?

Спасибо!

Ответы [ 4 ]

58 голосов
/ 02 октября 2011

Вместо простого копирования библиотеки, сделайте это так:

  • в Xcode Navigator, нажмите на цель (самая верхняя запись)

  • перейти к Build Phases, затем Link Binary With Libraries

  • добавить libsqlite3.dylib из его местоположения в /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOSxx.sdk/usr/lib/

1 голос
/ 27 февраля 2014

На случай, если кто-то столкнется с той же проблемой, что и я. Если вы проводите модульное тестирование своего кода, добавьте также файл lib к цели тестирования.

0 голосов
/ 16 марта 2014

Лучший способ использования SQLite в вашем приложении IOS, который я нашел, - это создать собственную копию библиотеки SQLit и включить ее в свой проект.libsqlite3.0.dylib - это очень старая копия SQLite.

Вы можете легко загрузить исходный код SQLite Amalgamation и собрать его для IOS.это дает вам последний исходный код SQLite, в котором есть все последние исправления ошибок и улучшения.

Если вы можете открыть Xcode и создать новый проект статической библиотеки, то вы на 75% пути.

Получив проект статической библиотеки, включите источники SQLite, которые вы загрузили из объединения SQLite, и установите несколько параметров препроцессора, а также включите и запустите последнюю версию кода.

Для получения полной информации и примера источникаКод вы можете посетить мой блог Конедогеры

0 голосов
/ 02 октября 2011

Вы пытались импортировать библиотеку sqlite3, например:

#import "sqlite3.h"

вместо:

#import <sqlite3.h>

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