我想在iOS应用程序中使用Berkeley DB,但我不确定如何解决这个问题。
如何在iOS项目中集成Berkeley DB?你如何通过Objective-C与它沟通?
是否有可能演示如何执行此操作的教程或示例?
答案 0 :(得分:5)
首先要注意的是库是C ++,而不是Objective-c。这不是问题,因为objective-c可以调用C ++。此外,教程的方式并不多,但这是你自己需要做的事情:
您可能需要知道安装的所有内容都是here
在iOS设备上构建它的具体部分是here
C ++ Examples
答案 1 :(得分:1)
我正在使用XCode版本4.3.2(4E2002)和Berkeley db-5.3.15。
在为Simulator构建时我不得不使用以下内容,因为官方文档似乎没有更新。
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
在config中指定“--enable-sql”会为您创建SQL API,我使用的是相同的DB包装器,我曾经使用过SQLite3。
答案 2 :(得分:0)
在任何其他答案中没有提到的一件事是,如果您不想使用他们的开源许可证(需要您制作源代码),您必须支付Oracle(版本2+)可用)。