SQLite,是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,其占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。
本文记录了在Ubuntu上安装sqlite3开发环境和交叉编译环境的过程。
1、下载sqlite3源码
官网地址:
此版本提供了配置脚本、Makefile等。
2、首先安装到Ubuntu下的x86环境
1 cd sqlite-autoconf-3230100/ #进入源码主目录2 sudo ./configure #使用默认配置,这里可以指定安装目录和编译器3 sudo make 4 sudo make install
观察安装过程中的输出信息可知,相关文件的安装路径如下:
可执行文件;/usr/local/bin
库文件:/usr/local/lib头文件:/usr/local/include命令行下输入:sqlite3,如下图,说明安装成功。
编译测试文件命令:gcc -o name name.c -lsqlite3
至此,就可以在Ubuntu下编写sqlite应用了。
3、安装嵌入式开发环境
1)、编译ARM版本
1 cd /usr/local/opt2 #创建安装目录,为方便管理与交叉工具链放在同一个目录下,在pc上编译代码用到此目录内容3 mkdri sqlite3 4 5 cd sqlite-autoconf-3230100/6 #--host指定了编译器 --prefix指定了安装目录7 sudo ./configure --host=arm-none-linux-gnueabi --prefix=/usr/local/opt/sqlite3
去除调试信息:
arm-none-linux-gnueabi-strip sqlite3
压缩动态库
arm-none-linux-gnueabi-strip libsqlite3.so.0.8.6
2)、复制可执行文件和库文件到开发板
1 cp /usr/local/opt/sqlite3/bin/sqlite3 /usr/local/bin2 cp /usr/local/opt/sqlite3/lib/libsqlite3.so.0.8.6 /usr/local/lib3 cd usr/local/lib4 ln -s libsqlite3.so.0.8.6 libsqlite3.so.05 ln -s libsqlite3.so.0.8.6 libsqlite3.so
确保/usr/local/bin包含于$PATH中,命令行输入sqlite3,如下:
说明安装成功。
编译测试文件命令:arm-none-linux-gnueabi-gcc -o name name.c -I /usr/local/opt/sqlite3/include -L /usr/local/opt/sqlite3/lib -lsqlite3
-I指定了头文件路径,-L指定了库文件路径, -lsqlite3制定的库为sqlite3。
问题:
可执行文件在开发板运行时提示:: error while loading shared libraries: libsqlite3.so.0: cannot open shared object file: No such file or directory
原因:存放libsqlite3.so.0的路径没有包含到环境变量中。
解决:export LD_LIBRARY_PATH="/usr/local/lib"