加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

sqlite 移植

发布时间:2020-12-12 20:15:40 所属栏目:百科 来源:网络整理
导读:Arm-linux 的移植: 1 下载sqlite :请到http://www.sqlite.org/download.html,现在最新的版本是sqlite-amalgamation-3.6.17.tar,将下载的代码包解开,将生成sqlite-3.6.17目录。 2 另外可在同目录下新建一个build 目录,用于存放编译生成的文件,进入 sql

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:没有这个文件或目录,提示没有找到库文件等问题。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读