Как я могу использовать Беркли БД в приложении для iOS? - PullRequest
3 голосов
/ 19 сентября 2011

Я бы хотел использовать БД Berkeley в приложении для iOS, но я не уверен, как это сделать.

Как вы интегрируете БД Berkeley в проект iOS?Как вы общаетесь с ним через Objective-C?

Существуют ли учебники или примеры, которые могут продемонстрировать, как это сделать?

Ответы [ 3 ]

5 голосов
/ 20 сентября 2011

Первое, на что нужно обратить внимание, это то, что библиотека - это C ++, а не target-c.Это не проблема, так как target-c может вызывать C ++.Кроме того, учебников не так много, но вот что вам нужно, чтобы сделать это самостоятельно:

Скачать

API

Все, что вам, вероятно, нужно знать, чтобы установить, это здесь

Конкретный раздел по его сборке на устройстве iOS: здесь

C ++ Примеры

Вызов C ++ из Objective-C

1 голос
/ 02 мая 2012

Я использую XCode версии 4.3.2 (4E2002) с Berkeley db-5.3.15.

При сборке для симулятора мне пришлось использовать следующее, потому что официальный документ не обновляется.

DEV_iOS=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer
export SDK_iOS=${DEV_iOS}/SDKs/iPhoneSimulator5.1.sdk
export COMPILER_iOS=${DEV_iOS}/usr/bin
export CC=${COMPILER_iOS}/gcc
export CXX=${COMPILER_iOS}/g++
export LDFLAGS="-arch i686 -pipe -Os -gdwarf-2 -no-cpp-precomp -mthumb -isysroot ${SDK_iOS}"
export CFLAGS=${LDFLAGS}
export CXXFLAGS=${LDFLAGS}
export LD=${COMPILER_iOS}/ld
export CPP=${COMPILER_iOS}/cpp
export AR=${COMPILER_iOS}/ar
export AS=${COMPILER_iOS}/as
export NM=${COMPILER_iOS}/nm
export CXXCPP=${COMPILER_iOS}/cpp
export RANLIB=${COMPILER_iOS}/ranlib

../dist/configure --host=i686-apple-darwin10 --with-cryptography=no --enable-shared=no --enable-sql --prefix=/build_output_dir

make install

и далее для устройства.

DEV_iOS=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer
export SDK_iOS=${DEV_iOS}/SDKs/iPhoneSimulator5.1.sdk
export COMPILER_iOS=${DEV_iOS}/usr/bin
export CC=${COMPILER_iOS}/gcc
export CXX=${COMPILER_iOS}/g++
export LDFLAGS="-arch armv6 -pipe -Os -gdwarf-2 -no-cpp-precomp -mthumb -isysroot ${SDK_iOS}"
export CFLAGS=${LDFLAGS}
export CXXFLAGS=${LDFLAGS}
export LD=${COMPILER_iOS}/ld
export CPP=${COMPILER_iOS}/cpp
export AR=${COMPILER_iOS}/ar
export AS=${COMPILER_iOS}/as
export NM=${COMPILER_iOS}/nm
export CXXCPP=${COMPILER_iOS}/cpp
export RANLIB=${COMPILER_iOS}/ranlib

../dist/configure --host=arm-apple-darwin10 --with-cryptography=no --enable-shared=no  --enable-sql --prefix=/build_output_dir

make install

Я использовал команду lipo, чтобы проверить, создаются ли в результате библиотеки для желаемой архитектуры.

lipo -info libdb-5.3.a

Указание "-enable-sql "в config создает для вас SQL API, я использую ту же оболочку БД, что и для SQLite3.

0 голосов
/ 24 мая 2012

Одна вещь, которая не упоминается ни в одном из других ответов, заключается в том, что вы должны платить Oracle (для версии 2+), если вы не хотите использовать их лицензию с открытым исходным кодом (для этого требуется, чтобы вы сделали свой исходный кодимеется).

...