2011-09-19 41 views
3

我想在iOS應用程序中使用Berkeley DB,但我不知道如何去做這件事。如何在iOS應用程序中使用Berkeley DB?

如何將Berkeley DB集成到iOS項目中?你如何通過Objective-C與它進行交流?

有沒有可能演示如何做到這一點的任何教程或例子?

+0

是否有一個特別的原因,您想專門使用Berkeley DB?還有其他數據庫解決方案可以更好地支持iOS平臺。 –

+0

我已經在谷歌搜索,但沒有發現在iOS應用程序內的伯克利DB的任何衡量優勢。您能否讓我們知道與傳統SQLITE數據庫相比,我們可以獲得哪些優勢? – Nikh1414

回答

5

首先要注意的是該庫是C++,而不是Objective-C。這不是問題,因爲objective-c可以調用C++。此外,沒有在教程的方式很多,但這裏是你需要什麼,自己做:

Download

API

的一切,你可能需要知道的安裝是here

構建它iOS設備上的特定部分是here

C++ Examples

Calling C++ from Objective-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的相同數據庫包裝器。

+0

你使用FMDB嗎? – samuraisam

+0

此處列出的這兩個腳本都適用於iPhoneSimulator;) – samuraisam

0

其他答案中沒有提及的一件事是,如果您不想使用其開源許可證(需要您提供源代碼),則必須支付Oracle(適用於版本2+)代碼可用)。

相關問題