SQLiteクロスコンパイルメモ
様々な環境向けに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