下载源码
一.linux平台
(1)x86_64
进入sqlite-autoconf-3350500目录执行
./configure CC=gcc AR=gcc-ar
make clean && make
即可在lib文件中得到libsqlite3.a和libsqlite3.so
(2)i686
理论上只需要在./configure中执行CFLAGS=-m32即可,但是这样会报错,提示需设置host,最简单方法是x86_64编译完成后,直接打开生成的Makefile文件,找到
CFLAGS = -g -O2
这一行,然后在后面添上-m32,再执行make即可。
出现错误:
libtool: link: gcc -shared -fPIC -DPIC .libs/sqlite3.o -lz -lm -ldl -lpthread -g -O2 -m32
-Wl,-soname -Wl,libsqlite3.so.0 -o .libs/libsqlite3.so.0.8.6
/usr/bin/ld: skipping incompatible //usr/lib/x86_64-linux-gnu/libz.so when searching for -lz
/usr/bin/ld: skipping incompatible //usr/lib/x86_64-linux-gnu/libz.a when searching for -lz
/usr/bin/ld: cannot find -lz
collect2: error: ld returned 1 exit status
Makefile:452: recipe for target 'libsqlite3.la' failed
缺少lib32z1-dev。这里使用的是ubuntu环境,执行:
sudo apt-get install lib32z1-dev
然后重新make即可。
(3)armel
./configure CC=arm-linux-gnueabi-gcc AR=arm-linux-gnueabi-gcc-ar --host=arm-linux-gnueabi
make clean && make
(4)armhf
./configure CC=arm-linux-gnueabihf-gcc AR=arm-linux-gnueabihf-gcc-ar --host=arm-linux-gnueabihf
make clean && make
(5)aarch64
./configure CC=aarch64-linux-gnu-gcc AR=aarch64-linux-gnu-gcc-ar --host=aarch64-linux-gnu
make clean && make
二.windows
由于下载的autoconf sqlite,依赖tcl,所以首先需要安装tcl。
安装地址:https://www.activestate.com/products/tcl/downloads/
打开VS2017,新建解决方案,在解决方案下新建动态库和静态库两个项目,每个项目均将下载的源码中的:
sqlite3.c、sqlite3.h
这2个文件添加到项目源文件。然后设置平台、RANLIB(属性—C/C++—代码生成—运行库,静态库对应MT/MTd,动态库对应MD/MDd)等分别编译即可。
如果报错:
在查找预编译头时遇到意外的文件结尾。是否忘记了向源中添加“#include “pch.h”
右键-属性-C/C+±预编译头-不使用预编译头即可
三.android NDK
可以直接将源码加到项目中编译到程序即可。