SQLite3在ubuntu16.04中的安装和mini2440上移植
SQLite简介
SQLite是一款轻型数据库,包含在一个相对较小的C库中。是一个完全独立、不需要服务器、不需要配置、支持SQL的、开源的文件数据库引擎。
SQLite3下载
源代码下载地址:https://www.sqlite.org/download.html
可在此地址下载最新版本的SQLite3源代码如下图所示:
Ubuntu16.04中安装
把源代码压缩包拷贝到自定义的目录中进行解压,源码包如图
进入压缩包目录进行解压:$tar -xvzf sqlite-autoconf-3240000.tar.gz
解压完成之后会在本目录出现一个目录:sqlite-autoconf-3240000
进入目录:$cd sqlite-autoconf-3240000
执行命令:$./configure --prefix=/use/local
--prefix选项是用来指定自定义安装目录的
也可直接执行:$./configure
在执行:$make
最后执行:$make install
在执行make install的时候有可能会出现权限不够问题,需要加上sudo。
等待安装完成。
SQLite3测试
安装完成之后在终端中输入:$sqlite3
在当前目标下创建一个student.db数据库:
$sqlite3 student.db
sqlite>create table user(name,id);
sqlite>insert into user values(‘zhangsan’,0001);
sqlite>select * from user;
zhangsan|1
sqlite>
安装成功~~~~~~~~~~~~~
mini2440中移植SQLite3
进入目录:$cd sqlite-autoconf-3240000
生成Makefile:$./configure --prefix=/use/local/sqlite --host=arm-linux
--prefix选项是用来指定自定义安装目录的
--host指定平台即ARM
在执行:$make
最后执行:$make install
执行完成后会生成四个目录如下所示:
bin中是sqlite3命令;
include中是头文件;
lib中是库文件;
share中是一个脚本文件
在开发板的根目录下的/opt下创建一个sqlite3的目录
$mkdir sqlite3
将四个文件夹都复制到其中
$sudo cp bin/ include/ lib/ share/ -r /root_path/opt/sqlite3
/root_path是自己开发板的根文件目录
在开发板中添加环境变量/etc/profile
把/opt/sqlite3/bin添加到环境变量中,或者直接把bin下边的sqlite3命令拷贝到根目录下的/bin中
把/opt/sqlite3/lib添加到环境变量中,或者直接把下边的库文件拷贝到根目录下的/lib中
编写代码测试:
/*sqlite3.c*/
#include
#include
#include
static int callback(void *notused,int argc,char **argv,char **azColName)
{
int i;
for(i = 0 ; i < argc ; i++ )
{
printf("%s = %s\n",azColName[i],argv[i]);
}
printf("\n");
return 0;
}
int main(int argc,char **argv)
{
sqlite3 *db;
char *message = 0;
int rc;
if(argc!=3)
{
fprintf(stderr,"Usage:%s DATABASE SQL-STARTEMENT\n",argv[0]);
}
rc = sqlite3_open(argv[1],&db);
if(rc)
{
fprintf(stderr,"Can't open database: %s\n",sqlite3_errmsg(db));
sqlite3_close(db);
}
rc = sqlite3_exec(db,argv[2],callback,0,&message);
if(rc!=SQLITE_OK)
{
fprintf(stderr,"SQL error:%s\n",message);
}
sqlite3_close(db);
return 0;
}
编译程序:
$ arm-linux-gcc sqlite3.c -o sqlite_test -I ./include/ -L ./lib/ -lsqlite3
把sqlite_test传入开发板中执行如图所示:
注意:在配置环境变量的时候容易出错,会提示库找不到等信息,出错是需根据具体信息进行分析