1.下载sqlite源码并解压。
2.创建一个路径,用于存放编译生成的库和头文件,这里就创建在解压后的文件里,如下图:
3.配置生成makefile,这里指定路径到上一步创建的mysqlite里,命令:./configure --prefix=/home/thera/sqlite3/sqlite-autoconf-3410000/mysqlite。执行完之后就能得到makefile啦
4.然后就是编译,执行以下命令:make clean;make;make install (。。。。大概一分钟就编译完了)生成这个可行性文件:
看看版本号,执行./sqlite3 --version
看看第二步的路径里:
5.测试一下,创建一个数据库./sqlite3 test.db
创建一个表create table people(name,age);
插入一行insert into people values(‘qqq’,12);
查看数据库select * from people;
进入第二步创建的mysqlite里,试试动态库
在这里插入代码片#include<stdio.h>
#include<stdlib.h>
#include"sqlite3.h"
#include<string.h>
#pragma comment(lib, "sqlite3.lib")
int main(int argc,char **argv)
{
int rc,i,ncols;
sqlite3 *db;
sqlite3_stmt *stmt;
char *sql;
const char*tail;
rc=sqlite3_open("test1.db",&db);
if(rc){
fprintf(stderr,"Can'topendatabase:%sn",sqlite3_errmsg(db));
sqlite3_close(db);
exit(1);
}
sql="create table food(name,price)";//建表
//sql="insert into test1 values('ooo',3)";//增
//sql="select * from test1"; //查
//sql="update test1 set id=004 where name='ooo'";//改
//sql="delete from test1 where id=004";//删
rc=sqlite3_prepare(db,sql,(int)strlen(sql),&stmt,&tail);
if(rc!=SQLITE_OK){
fprintf(stderr,"SQLerror:%sn",sqlite3_errmsg(db));
}
rc=sqlite3_step(stmt);
ncols=sqlite3_column_count(stmt);
while(rc==SQLITE_ROW){
for(i=0;i<ncols;i++){
fprintf(stderr,"'%s'",sqlite3_column_text(stmt,i));
}
fprintf(stderr,"\n");
rc=sqlite3_step(stmt);
}
sqlite3_finalize(stmt);
sqlite3_close(db);
printf("\n");
return(0);
}
编译测试代码 gcc testsqlite.c -o test -lsqlite3 -I /mnt/hgfs/sharewithubuntu16046/test/mysqlite/include
编译成功,执行test,生成test1.db。
插入数据,查看