《嵌入式系统与开发》构建嵌入式Linux系统-实验报告

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

南京邮电大学计算机学院《嵌入式系统与开发》实验报告《嵌入式数据库sqlite移植及使用》实验报告学生姓名:陈彤学号:13004405专业班级:130044指导教师:孙国梓完成时间:2016.5.31南京邮电大学计算机学院《嵌入式系统与开发》实验报告实验3嵌入式数据库sqlite移植及使用一.实验目的理解嵌入式软件移植的基本方法,掌握sqlite数据库软件移植的步骤,掌握sqlite开发的两种方式—命令模式和C代码开发模式的使用方法,并编程实现简单通讯录查询实验。二.实验内容实验3.1移植嵌入式数据库sqlite实验3.2简单通讯录查询实例设计和测试三.预备知识Linux使用、数据库相关知识等四.实验设备及工具(包括软件调试工具)硬件:ARM嵌入式开发平台、PC机Pentium100以上、串口线。软件:WinXP或UBUNTU开发环境。五.实验步骤5.1移植嵌入式数据库sqlite步骤【参看教材103页】:第一步,解压缩sqlite源码,命令tarzxvfsqlite-autoconf-3080900.tar.gz,在解压后的文件夹下,可以看到源码文件有shell.c和sqlite3.c文件,生成Makefile的配置脚本文件configure.ac,并检查当前文件夹下__A__(A.存在B.不存在)Makefile文件。第二步利用configure脚本文件生成基于ARM实验台的Makefile,具体命令为./configureCC=arm-linux-gcc–prefix=/opt/sqlite–host=arm-linux(假设安装目录为/opt/sqlite),并检查当前文件夹下___A__(A.存在B.不存在)Makefile文件。第三步,编译sqlite,命令为_make_,编译过程中使用的编译器为_arm-linux-gcc_。第四步,安装sqlit,命令为_makeinstall_。安装完成后到_/opt/sqlite_文件夹下去查看相关文件,可以看到该文件夹下有_bin_、_include_、__lib__和share文件夹,其中可执行文件sqlite3位于_./bin_文件夹,库位于_./lib_文件夹。第五步,将sqlite3拷贝到开发板bin目录下,将库下的文件拷贝到开发板的lib目录下【注意链接文件的创建】第六步,数据库的使用方式1:命令操纵数据库在超级终端环境下创建数据库stucomm.db,命令为_sqlite3stucomm.db_;创建数据表stutable,字段包括id整型,name字符型,phoneNum字符型,具体命令为_sqlitecreatetablestutable(idint(20),namechar(20),phoneNumchar(20));_;插入2条记录,记录信息如下001,zhangsan,10086002,lisi,10000具体命令为_sqlieinsertintostutablevalues(001,’zhangsan’,10086);_;_sqliteinsertintostutablevalues(02,’lisi’,10000);_;南京邮电大学计算机学院《嵌入式系统与开发》实验报告查询电话号码为10086的相关记录信息,命令为_sqliteselect*fromstutablewhere=10086;__。方式2:编程操纵数据库使用C编程模式完成上述功能,代码如下:#includestdio.h#includesqlite/sqlite3.hintcallback(void*,int,char**,char**);intmain(){sqlite3*db;intnResult=sqlite3_open(test.db,&db);if(nResult!=SQLITE_OK){printf(打开数据库失败\n);return0;}else{printf(打开数据库成功\n);}char*errmsg;nResult=sqlite3_exec(db,creattablestutable(idint(20),name(20),phoneNum(20)),NULL,NULL,&errmsg);if(nResult!=SQLITE_OK){sqlite3_close(db);couterrmsg;sqlite3_free(errmsg);return0;}stringstrSq1;strSq1+=begin;\n;for(inti=0;i100;i++){strSq1+=insertintostuvalues(null.'heh');\n;}strSq1+=commit;;//coutstrSq1end1;nResult=sqlite3_exec(db,strSq1.c_str(),NULL,NULL,&errmsg);if(nResult!=SQLITE_OK){sqlite3_close(db);couterrmsgend1;sqlite3_free(errmsg);return0;南京邮电大学计算机学院《嵌入式系统与开发》实验报告}strSq1=select*fromwhere=10086;nResult=sqlite3_exec(db,strSq1.c_str(),callback,NULL,NULL,&errmsg);if(nResult!=SQLITE_OK){sqlite3_close(db);couterrmsgend1;sqlite3_free(errmsg);return0;}sqlite3_close(db);return0;}intcallback(void*,intnCount,char**pValue,char**pName){strings;for(inti=0;inCount;i++){s+=pName[i];s+=:;s+=pValue[i];s+=\n;}printf(%s\n,s);return0;}假设上述代码文件名为sqlite_exp.c文件,编译命令arm-linux-gcc-otestsqlite_exp.c-I/opt/build/include/-L/opt/build/lib/-lsqlite3_,其中头文件位于/opt/sqlite/include,库位于/opt/sqlite/lib下。

1 / 4
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功