様々な環境向けにSQLiteを共有ライブラリとしてコンパイルする方法です。 具体的にはUnityで利用するためにビルドしたときのメモです。

開発環境

  • Ubuntu 16.04
    • build-essentialとmingw-w64をインストール
  • Android NDK r12b
    • 展開して環境変数ANDROID_NDK_ROOTを設定

ソースの取得

SQLiteのDownloadページにあるAmalgamationされたソース(sqlite-amalgamation-xxxxx.zip)を利用します。 共有ライブラリを作るのに必要なのは、zipに含まれるsqlite3.cだけです。

Linux

gcc -shared -fPIC -o libsqlite3.so sqlite3.c

Android

ARMv7-A

$ANDROID_NDK_ROOT/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-gcc \
  --sysroot=$ANDROID_NDK_ROOT/platforms/android-14/arch-arm \
  -march=armv7-a -shared -o libsqlite3.so sqlite3.c

x86

$ANDROID_NDK_ROOT/toolchains/x86-4.9/prebuilt/linux-x86_64/bin/i686-linux-android-gcc \
  --sysroot=$ANDROID_NDK_ROOT/platforms/android-14/arch-x86 \
  -shared -o libsqlite3.so sqlite3.c

Windows

SQLiteのDownloadページにDLLがあるので、それを使うほうが楽です。

32bit

i686-w64-mingw32-gcc -shared -o sqlite3.dll sqlite3.c

64bit

x86_64-w64-mingw32-gcc -shared -o sqlite3.dll sqlite3.c