linux下c语言操作sqlite3(1)



sqlite3是什么就不用多说了,主要记录一下怎么用,算是备忘吧。这一部分主要说的是pc上如何用,以后有机会再记录一下静态编译。

首先从官网下载sqlite-autoconf-xx-xx.tar.gz。

然后解压

tar -zxvf sqlite-autoconf-3070701.tar.gz

解压后编译

cd sqlite-autoconf-3070701/
./configure&&make

make后在sqlite-autoconf-3070701/文件夹中有一个“.libs"的隐藏目录,里面存放的是sqlite3的库文件

cd ./libs

miko@bogon:~/Downloads/sqlite-autoconf-3070701/.libs> ls
libsqlite3.a   libsqlite3.lai  libsqlite3.so.0      sqlite3
libsqlite3.la  libsqlite3.so   libsqlite3.so.0.8.6  sqlite3.o


c语言使用sqlite3时这些是必须的。

在工程目录中建立sqlite3文件夹专门存放sqlite3相关的文件。假设工程目录是pro

miko@bogon:~> mkdir sqlite3 


在sqlite3目录中创建lib目录存放库文件,创建include目录存放sqlite3的头文件

miko@bogon:~> cd sqlite3/
miko@bogon:~/sqlite3> mkdir include
miko@bogon:~/sqlite3> mkdir lib

将刚才./libs目录中的文件移动到此lib目录中

miko@bogon:~/sqlite3> cp ~/Downloads/sqlite-autoconf-3070701/.libs/* lib/

将sqlite3的头文件复制到include目录中

miko@bogon:~/sqlite3> cp ~/Downloads/sqlite-autoconf-3070701/sqlite3.h include/

然后就可以使用sqlite3了。当然编译时要指定头文件路径,链接是指定库文件路径

给一个例子,这个例子是网上看到的挺简短的,但是能够说明问题就好

// name: opendbsqlite.c
 // This prog is used to test C/C++ API for sqlite3.It is very simple,ha!
 // Author : zieckey All rights reserved.
 // data : 2006/11/13

 #include <stdio.h>
 #include <stdlib.h>
 #include <sqlite3.h>

 int main( void )
 {
 sqlite3 *db=NULL;
 char *zErrMsg = 0;
 int rc;

 //打开指定的数据库文件,如果不存在将创建一个同名的数据库文件
 rc = sqlite3_open("zieckey.db", &db); 
 if( rc )
 {
 fprintf(stderr, "Can't open database: %s ", sqlite3_errmsg(db));
 sqlite3_close(db);
 exit(1);
 }
 else printf("You have opened a sqlite3 database named zieckey.db successfully! Congratulations! Have fun ! ^-^ ");

 sqlite3_close(db); //关闭数据库
 return 0;
 }

将源文件保存在项目目录即pro目录下

在编译时指定头文件位置

-I sqlite3/include

链接时指定库文件位置

-L sqlite3/libs -l sqlite3

这里给出我的makefile文件以作参考

target = app

src = $(wildcard *.c)
obj = $(patsubst %.c, %.o, $(src))


CC = gcc

# debug
Cflags = -g -Wall -ansi
# release
#CFLAGS = -O -Wall -ansi

# include dir
#INCLUDE = .

#options for sqlite3
INCLUDE_SQLITE3 = sqlite3/include
#lin
LIB_SQLITE3 = sqlite3/libs -l sqlite3

LDFLAGS = 

$(target):$(obj)
	$(CC) -L $(LIB_SQLITE3) $(LDFLAGS) $^ -o $@

%.o:%.c
	$(CC) -I $(INCLUDE_SQLITE3) -c $(CFLAGS) {1}lt; -o $@

clean:
	-rm -f *.o $(target)

.PHONY:clean

makefile和源文件 opendbsqlite.c都放在项目根目录下


然后make 即可得到可执行文件app

运行app

miko@bogon:~> make
gcc -I sqlite3/include -c  opendbsqlite.c -o opendbsqlite.o
gcc -L sqlite3/libs -l sqlite3  opendbsqlite.o -o app
miko@bogon:~> ./app 
You have opened a sqlite3 database named zieckey.db successfully! Congratulations! Have fun ! ^-^







  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值