移植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 然后,make ;make install 然后进入/gzz/cross_compile/sqlite目录,把bin目录下的文件,lib目录下的.so库文件拷到开发板的文件系统下, 移植成功 测试: 启动开发板系统,我用的NFS挂载的文件系统 在终端输入sqlite3 stu.db建立数据库 然后输入CREATE TABLEstudent(name,num);建立一个数据表 列出数据表命令: sqlite> .tables 检查成功创建的数据表 sqlite> insert into student (name,num) values ('aas',001); 上面为在数据表中插入数据, 查看所建表中数据 sqlite> select * from student; 测试完成,应该是没什么问题,接下来学学它的API函数,封装如C++类中 参考博客网址http://www.52php.cn/article/p-tgetgwxl-gw.html 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 = %sn",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-STATEMENTn",argv[0]); return(1); } rc = sqlite3_open(argv[1],&db); if( rc ){ fprintf(stderr,"Can't open database: %sn",sqlite3_errmsg(db)); sqlite3_close(db); return(1); } rc = sqlite3_exec(db,argv[2],callback,&zErrMsg); if( rc!=SQLITE_OK ){ fprintf(stderr,"SQL error: %sn",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 可执行文件拷到开发板,执行
name = sss
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |