1. 源代码的获取 sqlite是一个功能强大、体积小运算速度快的嵌入式数据库,采用了全C语言封装,并提供了八十多个命令接口,可移植性强,使用方便。
下载地址:http://sqlite.org/download.html
sqlite源代码:sqlite-3.6.17.tar.gz
2. sqlite移植到x86 for linux 2.l 解压文件 //创建一个文件夹,将源代码放在这个文件夹中。 mkdir /home/database cp sqlite-3.6.17.tar.gz /home/database/ //解压文件 cd /home/database tar xvzf sqlite-3.6.17.tar.gz 2.2配置 //建立x86目录 mkdir sqlite-ix86-linux //打开文件 cd sqlite-3.6.17 //配置sqlite ./configure --prefix=/home/database/sqlite-ix86-linux --disable-tcl 2.3 编译 make 2.4安装 make install
2.5测试 2.5.1在/root/.bashrc文件中添加路径: export PATH=/home/database/sqlite-ix86-linux/bin:$PATH #sqlite3 -version 3.6.22 成功看到版本即认为是安装成功和路径设置成功 2.5.2 建立数据库 当安装完成以后,安装文件会安装在/home/database/sqlite-ix86-linux目录中,一种产生了,lib,include和bin三个文件夹, 分别是库文件,头文件和可执行文件。到这里是不是有点跃跃欲试了,是的,我们可以测试sqlite了,当文件安装后, 我们可以直接通过安装好的sqlite3来实现。 cd /home/database/sqlite-ix86-linux/bin ./sqlite3 test.db //打开或创建test.db数据库文件 create table test (id integer primary key,value text); //创建表格和字段名 insert into test (value) values('hxl'); //添加一条数据 insert into test (value) values('sqlite'); //添加一条数据 insert into test (value) values('test'); //添加一条数据 insert into test (value) values('for'); //添加一条数据 insert into test (value) values('linux'); //添加一条数据 //到此数据库基本家里就完成了,来看看数据库里面的文件吧 .mode col .headers on //打印出数据库的表头 select * from test; //显示数据库中的所有文件 .exit //退出
2.5.3 在应用程序中测试,新建文件夹Test,把刚才生成的test.db拷贝进来, 新建文件sqliteTest.c,添加如下内容
==================sqliteTest.c=======================================
#include <stdio.h> #include "sqlite3.h"//"sqlite3.h" static int callback(void *NotUsed,int argc,char **argv,char **azColName) { int i; for(i=0; i<argc; i++) { printf("%s = %sn",azColName[i],argv[i] ? argv[i] : "NULL"); } printf("n"); return 0; } int main(int argc,char **argv) { sqlite3 *db; char *zErrMsg = 0; int rc; if( argc!=3 ) { fprintf(stderr,"Usage: %s DATABASE SQL-STATEMENTn",argv[0]); } rc = sqlite3_open(argv[1],&db); if( rc ) { fprintf(stderr,"Can't open database: %sn",sqlite3_errmsg(db)); sqlite3_close(db); } rc = sqlite3_exec(db,argv[2],callback,&zErrMsg);
if( rc!=SQLITE_OK ) { fprintf(stderr,"SQL error: %sn",zErrMsg); } sqlite3_close(db); return 0; }
==================end ofsqliteTest.c=======================================
编译: gcc sqliteTest.c -lsqlite3 -L/home/database/sqlite-ix86-linux/lib -I/home/database/sqlite-ix86-linux/include 编译生成a.out 可能提示的错误: 1. Connot find -lsqlite3 则是-L路径没设对 2. error:sqlite3.h没找到 error:'sqlite3' undeclared(first use in this funtion) 则是-I路径没有设对设对 运行: ./a.out test.db "select * from test;"
显示如下:
root@xiangzi-desktop:/home/database/test# ./a.out test.db "select * from test"
id = 1 value = hxl
id = 2 value = sqlite
id = 3 value = test id = 4 value = for id = 5 value = linux root@xiangzi-desktop:/home/database/test#
3. sqlite移植到arm 3.1 配置 //建立x86目录 mkdir /home/database/sqlite-arm-linux //打开文件 cd /home/database/sqlite-3.6.17 //配置sqlite ./configure --prefix=/home/database/sqlite-arm-linux --disable-tcl --host=arm-linux 3.2 编译 make 3.3 安装 make install
3.4 测试
把上面那个测试程序修改编译器即可,省略...
================================================
参考: 1. Sqlite 嵌入式数据库移植和使用 http://bbs.ednchina.com/BLOG_ARTICLE_253793.HTM 2. Sqlite学习笔记 http://wanqiufeng.blog.51cto.com/409430/472905 3. 关于Sqlite3的使用 http://blog.sina.com.cn/s/blog_3f2fa9610100rq4t.html 4. 嵌入式数据库Sqlite移植教程 http://www.elecfans.com/emb/xitong/20100311186619.html 5. SQLite http://www.helplib.net/s/sqlite/9/2.shtml (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|