移植SQLite到ARM开发板

最近在搞移植数据库到开发板,上网一搜都是sqlite ,所以就用这个吧,记录一下,特别简单,

首先要确保开发环境是好的,交叉编译器,NFS文件系统挂载等,

下载sqlite源码,

http://www.sqlite.org/quickstart.html

拷贝到UBUTUN系统里,解压

tar -xzvf sqlite-autoconf-3080403.tar.gz

进入目录

cd sqlite-autoconf-3080403/
配置编译

./configure --host=arm-linux --prefix=/gzz/cross_compile/sqlite --with-gnu-ld

/gzz/cross_compile/sqlite是为了编译库建的目录,

然后,make ;make install

然后进入/gzz/cross_compile/sqlite目录,把bin目录下的文件,lib目录下的.so库文件拷到开发板的文件系统下,

移植成功

测试:

启动开发板系统,我用的NFS挂载的文件系统

在终端输入sqlite3 stu.db建立数据库

然后输入CREATE TABLE student(name,num);建立一个数据表

列出数据表命令:

sqlite> .tables
student

检查成功创建的数据表

sqlite> insert into student (name,num) values ('aas',001);
sqlite> insert into student (name,num) values ('sss',002);

上面为在数据表中插入数据,

查看所建表中数据

sqlite> select * from student;
aas|1
sss|2

测试完成,应该是没什么问题,接下来学学它的API函数,封装如C++类中

参考博客网址http://blog.csdn.net/jianchi88/article/details/7037524

http:

//www.linuxidc.com/Linux/2012-07/66854.htm

测试c程序

#include <stdio.h>
#include <sqlite3.h>
  
static int callback(void *NotUsed, int argc, char **argv, char **azColName){
  int i;
   for(i=0; i<argc; i++){
      printf("%s = %s\n", 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-STATEMENT\n", argv[0]);
      return(1);
    }
    rc = sqlite3_open(argv[1], &db);
    if( rc ){
     fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
      sqlite3_close(db);
     return(1);
   }
    rc = sqlite3_exec(db, argv[2], callback, 0, &zErrMsg);
    if( rc!=SQLITE_OK ){
      fprintf(stderr, "SQL error: %s\n", zErrMsg);
      sqlite3_free(zErrMsg);
   }
    sqlite3_close(db);
    return 0;
  }


ubutun下输入命令

 arm-linux-gcc -I/gzz/cross_compile/sqlite/include -L/gzz/cross_compile/sqlite/lib test_sqlite.c -o test_sqlite -lsqlite3

编译成功

可执行文件拷到开发板,执行


[root@FriendlyARM /]# ./test_sqlite stu.db "select * from student"
name = aas
num = 1

name = sss
num = 2






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值