1. 获取原始源代码 (canonical sources, 而非 amalgamation sources)
从地址 https://www.sqlite.org/2015/sqlite-src-3081101.zip 下载,或到官网下载。
2. 解压源代码并进入解压后的目录:
unzip sqlite-src-3081101.zip
cd sqlite-src-3081101
3. 配置编译选项(以MIPS交叉编译为例)
CC=/projects/hnd/tools/linux/hndtools-mips-linux-uclibc-4.9.3/usr/bin/mips-ugw-linux-uclibc-gcc \
LD=/projects/hnd/tools/linux/hndtools-mips-linux-uclibc-4.9.3/usr/bin/mips-ugw-linux-uclibc-ld \
AR=/projects/hnd/tools/linux/hndtools-mips-linux-uclibc-4.9.3/usr/bin/mips-ugw-linux-uclibc-ar \
./configure --disable-tcl --host=mips-linux --target=mips-linux
4. 编辑 Makefile 文件
修改 OPT_FEATURE_FLAGS 的值, 添加需要裁减的宏 SQLITE_OMIT_*(参看这里),例如:
OPT_FEATURE_FLAGS += -DSQLITE_OMIT_DECLTYPE
OPT_FEATURE_FLAGS += -DSQLITE_OMIT_DEPRECATED
OPT_FEATURE_FLAGS += -DSQLITE_OMIT_ANALYZE
OPT_FEATURE_FLAGS += -DSQLITE_OMIT_ATTACH
OPT_FEATURE_FLAGS += -DSQLITE_OMIT_AUTHORIZATION
OPT_FEATURE_FLAGS += -DSQLITE_OMIT_BUILTIN_TEST
OPT_FEATURE_FLAGS += -DSQLITE_UNTESTABLE
OPT_FEATURE_FLAGS += -DSQLITE_OMIT_COMPILEOPTION_DIAGS
OPT_FEATURE_FLAGS += -DSQLITE_OMIT_FOREIGN_KEY
OPT_FEATURE_FLAGS += -DSQLITE_OMIT_EXPLAIN
OPT_FEATURE_FLAGS += -DSQLITE_OMIT_LOAD_EXTENSION
OPT_FEATURE_FLAGS += -DSQLITE_OMIT_TCL_VARIABLE
OPT_FEATURE_FLAGS += -DSQLITE_OMIT_TEMPDB
OPT_FEATURE_FLAGS += -DSQLITE_OMIT_TRACE
OPT_FEATURE_FLAGS += -DSQLITE_OMIT_TRIGGER
OPT_FEATURE_FLAGS += -DSQLITE_OMIT_UTF16
OPT_FEATURE_FLAGS += -DSQLITE_OMIT_VACUUM
OPT_FEATURE_FLAGS += -DSQLITE_OMIT_VIRTUALTABLE
OPT_FEATURE_FLAGS += -DSQLITE_OMIT_SHARED_CACHE
OPT_FEATURE_FLAGS += -DSQLITE_OMIT_AUTOVACUUM
OPT_FEATURE_FLAGS += -DSQLITE_OMIT_BETWEEN_OPTIMIZATION
OPT_FEATURE_FLAGS += -DSQLITE_OMIT_BLOB_LITERAL
OPT_FEATURE_FLAGS += -DSQLITE_OMIT_CAST
OPT_FEATURE_FLAGS += -DSQLITE_OMIT_CHECK
OPT_FEATURE_FLAGS += -DSQLITE_OMIT_CTE
OPT_FEATURE_FLAGS += -DSQLITE_OMIT_FLAG_PRAGMAS
OPT_FEATURE_FLAGS += -DSQLITE_OMIT_GET_TABLE
OPT_FEATURE_FLAGS += -DSQLITE_OMIT_INCRBLOB
OPT_FEATURE_FLAGS += -DSQLITE_OMIT_LIKE_OPTIMIZATION
OPT_FEATURE_FLAGS += -DSQLITE_OMIT_LOCALTIME
OPT_FEATURE_FLAGS += -DSQLITE_OMIT_LOOKASIDE
OPT_FEATURE_FLAGS += -DSQLITE_OMIT_MEMORYDB
OPT_FEATURE_FLAGS += -DSQLITE_OMIT_OR_OPTIMIZATION
OPT_FEATURE_FLAGS += -DSQLITE_OMIT_PROGRESS_CALLBACK
OPT_FEATURE_FLAGS += -DSQLITE_OMIT_REINDEX
OPT_FEATURE_FLAGS += -DSQLITE_OMIT_SUBQUERY
OPT_FEATURE_FLAGS += -DSQLITE_OMIT_VIEW
5. 生成 amalgamation sources (sqlite3.c/sqlite3.h/sqlite3ext.h/shell.c)
make sqlite3.c
6. 此时在当前目录已经生成 sqlite3.c/sqlite3.h/sqlite3ext.h/shell.c
把这些文件拷贝到编译环境编译即可(跟amalgamation sources的编译方式相同):
cp sqlite3.c sqlite3.h sqlite3ext.h shell.c somewhere
创建于 2018-12-24 14:57:19
最后更新于 2018-12-28 10:13:34