sqlite 移植

前端之家收集整理的这篇文章主要介绍了sqlite 移植前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

Arm-linux的移植:

1下载sqlite:请到http://www.sqlite.org/download.html,现在最新的版本是sqlite-amalgamation-3.6.17.tar,将下载的代码包解开,将生成sqlite-3.6.17目录。

2另外可在同目录下新建一个build目录,用于存放编译生成文件,进入sqlite-3.6.17,执行./configure --host=arm-softfloat-linux-gnu --prefix=/home/hzc/build

3 生成Makefile,在执行make,然后再makeinstall,结束后会在刚才我们指定的build目录下生成bin includelib 三个目录。先对lib目录下的文件strip一下,再把lib下的libsqlite3.so.0.8.6拷贝到根文件系统的lib目录下,并且在该目录下建一个软连接,命令为 ln –slibsqlite3.so.0.8.6libsqlite3.so.0 ,再把build/bin下的sqlite3拷贝到根文件系统的usr/bin目录下面,这样我们就完成了sqlite在arm-linux的移植工作。

sqlite操作:

sqlite 本身提供了C 语言的API 接口,使得对数据库的操作十分简单,主要是对3个API 函数调用

  (1) 打开数据库

  int sqlite3_open (

  const char 3 filename,/ 3 数据库文件名(U TF28) 3 /

  sqlite3 3 3 ppDb   / 3 输出SQLite 数据库句柄3 /

  ) ;

  (2) 执行sql

  int sqlite3_exec (

  sqlite3 3,     / 3 已经打开的数据库句柄3 /

  const char 3 sql,  / 3 要执行的sql 语句3 /

  sqlite callback,  / 3 回调函数3 /

  void 3,     / 3 回调函数的第一个参数3 /

  char 3 3 errmsg   / 3 错误信息返回3 /

  );

  (3) 关闭数据库

  int sqlite3_close( sqlite3 3 ) ;   / 3 参数就是打开时的结构体,即数据库句柄3 /

其中,sqlite3_exec ( ) 函数的第二个参数用来处理一条或多条sql 语句,语句间必须用“;”号隔开。如果是查询(SELECT) 语句,查询结果的每一条记录都必须调用第三个参数的Callback 函数,第四个参数则为Callback 函数的第一个参数指针。如果不是查询语句,第三、四个参数为NULL。所有sql 执行完毕后返回0,否则返回错误代码,可通过第五个参数值来查看详细错误信息。

应用程序的交叉编译:

arm-softfloat-linux-gnu-gcc name.c -o db.out -lsqlite3 -L/home/hzc/new/lib -I/home/hzc/new/include

默认的情况下,是执行动态编译,编译生成文件比静态编译小得多,因为我们是在开发板上运行,之前已经拷贝了库文件到根文件系统里,所以这里我们采用默认的动态编译方式就行了,-lsqlite3 是指定库名,-L/home/hzc/new/lib 是指定库的搜索目录,new也就是我们刚才sqlite的安装目录,-I/home/hzc/new/include 是指定头文件搜索目录,我们在name.c文件中头文件包含形式为 #include<sqlite3.h>,还可以把头文件拷到但前name.c同目录下或者包涵时把路径也写上,这样编译时就可以不需要–I选项了。如果没做好前面这些工作编译是通不过的,会出错误sqlite3.h:没有这个文件或目录,提示没有找到库文件等问题。

原文链接:https://www.f2er.com/sqlite/201214.html

猜你在找的Sqlite相关文章