我该如何在iOS应用程序中使用Berkeley DB?

3
我想在iOS应用程序中使用Berkeley DB,但我不确定该如何操作。
如何将Berkeley DB集成到iOS项目中? 如何通过Objective-C与其通信?
是否有任何教程或示例可以演示如何做到这一点?

你想特别使用Berkeley DB的原因是什么?对于iOS平台,有其他更受支持的数据库解决方案。 - Aidan Steele
我在谷歌上搜索了一下,但没有找到Berkeley DB在iOS应用中的任何优势。您能否告诉我们相比传统的SQLITE数据库,我们可以得到什么优势? - Nikh1414
3个回答

5
首先需要注意的是,这个库是用C++编写的,而不是Objective-C。但这并不是问题,因为Objective-C可以调用C++。此外,关于这方面的教程并不多,但你可以自己完成以下步骤:

下载

API

你可能需要了解的所有安装信息都在这里

有关iOS设备上构建的具体部分,请参考这里

C++ 示例

从Objective-C调用C++


1
我正在使用 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”将为您创建SQL API,我正在使用与SQLite3相同的DB包装器。

这里列出的两个脚本都是针对iPhone模拟器的 ;) - samuraisam

0

在其他答案中没有提到的一件事是,如果您不想使用Oracle的开源许可证(需要您公开源代码),则必须支付Oracle(适用于版本2+)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接