嵌入式Linux中使用SQLite3数据库

SQLite3是一款轻量级的文件型数据库,非常适合嵌入式环境下使用,最近搞的Linux嵌入式项目中需要用到这款数据库,就研究了一下怎么在嵌入式Linux中使用,记录下来以备查用。
我的嵌入式核心板MPU用的是TI的AM3352这款A8单核处理器,交叉编译环境安装在虚拟机的国产Linux系统Deepin中,顺便吐槽一下,大部分网上教程都是用ubuntu来建立交叉编译环境,做嵌入式开发用个桌面版就足够,建议大家不妨用用Deepin,更符合国人的使用习惯,很多软件都自带不需要重新安装。用了一段时间感觉还不错。交叉编译工具用的是GNU的arm–none-linux-gnueabi这款交叉编译工具。怎么在Ubuntu或DeepIn中搭建32位arm的交叉编译环境就不在这赘述了,网上有很多文章。
1.首先去SQLite官网下载最新源码,如下图:
注意要下载带编译配置工具的这个。
2.拷贝到虚拟机的Deepin系统中,解压缩到用户目录中,在桌面直接解压缩或用终端命令解压缩也行,解压缩命令:tar -zxvf sqlite-autoconf-3380500.tar.gz。
3.进入解压目录,打开终端,如下图:

运行编译配置命令:./configure --host=arm-none-linux-gnueabi --prefix=/home/xxx/dist-arm-sqlite3
这里要注意的是配置命令有两个参数:
–host 这个参数是将编译工具配置为本虚拟机上安装的交叉编译工具,注意”arm-none-linux-gnueabi”这是交叉编译工具的前缀名,完整的gcc交叉编译工具名是:“arm-none-linux-gnueabi-gcc”。
–prefix 这个参数是配置编译完成后安装时将SQLite3的编译生成文件安装到的绝对目录的路径。这个自己定义一个有写入权限的目录即可。
配置过程如下图:

4.最后运行编译和安装命令:make && make install
等待一段时间等编译和安装完成后打开前面设置的目录,里面就是编译安装后的结果,如下图:

其中“bin”目录里的sqlite3文件是在嵌入式Linux中运行的sqlite3的命令行工具,“include"目录下是C/C++开发用的头文件,”lib"目录是sqlite3的静态库和动态库文件。所以我们开发要用的就是“include”目录和"lib"目录。
这样sqlite3在嵌入式Linux中开发需要的文件就都有了,可以用程序测试一下。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <unistd.h>
#include <fcntl.h>
#include <time.h>
#include "sqlite3.h"char        DBFileName[80];
char        DBTableName[20];int main(  int argc,char* argv[] )
{char       SqlStr[256];char*        ErrMsg;char        str[64];int         startidx;int         i1, rc;time_t      t;struct tm   *p;sqlite3*     db;startidx = 0;strcpy( DBFileName, "/mnt/nandflash/test.db");strcpy( DBTableName, "table1");//创建数据库文件rc = sqlite3_open( DBFileName, &db );sprintf( SqlStr, "create table %s(Name char(50), Value int, Date char(50))",DBTableName );//创建表sqlite3_exec( db, SqlStr, 0, 0, &ErrMsg );//往表里插入10条记录for( i1=startidx; i1<startidx+10; i1++ ){time( &t );p = localtime ( &t );sprintf( str, "%d.%d.%d-%d:%d:%d\n", p->tm_year + 1900, p->tm_mon+1, p->tm_mday, p->tm_hour, p->tm_min, p->tm_sec );printf("%d\n", i1+1);sprintf(SqlStr, "insert into %s values(\"Name%d\", %d, \"%s\")",DBTableName, i1+1, i1+1, str );sqlite3_exec( db, SqlStr, 0, 0, &ErrMsg );sleep(1);}sqlite3_close( db );return 0;
}

码字不易,如果本文对您有用请随手点个赞,谢谢!^_^

嵌入式Linux中使用SQLite3数据库相关推荐

  1. Linux中的MySql数据库远程连接

    Linux中的MySql数据库远程连接 rpm–qa |grep mysql安装了以下的包: mysql-libs-5.1.71-1.el6.x86_64 mysql-connector-java-5 ...

  2. 嵌入式Linux中的根文件系统

    以下内容转载于http://mp.weixin.qq.com/s/O6MklgKekSc9gbM7zQSMEQ,有删改. 一. 首先要明白的是"什么是文件系统?",文件系统是对一个 ...

  3. linux中备份mysql数据库

    在linux中备份mysql数据库,命令是: [root]# mysqldump -u 用户名 -p 密码 --all-databases > /home/mysql/bak.sql 如果报错就 ...

  4. 如何在linux中连接sybase数据库

    如何在linux中连接sybase数据库 要在Linux中连接Sybase数据库,需要使用Sybase客户端工具(例如isql或bcp)以及Sybase库文件和驱动程序.以下是一些基本步骤: 1.安装 ...

  5. 嵌入式Linux中摄像头使用简要整理

    原文地址为: 嵌入式Linux中摄像头使用简要整理 本文涉及软硬件平台: 开发板:飞凌OK6410 系统:Ubuntu 12.04+飞凌官方3.0.1 嵌入式Linux还处在入门阶段,主要方向是嵌入式 ...

  6. 对嵌入式Linux中的根文件系统的理解和解析

    虽然前面已经利用Busybox制作了根文件系统,但是对于根文件系统的作用和普通的文件系统之间的区别还是有点模糊.通过查找资料总结了一 下对根文件系统的理解,也欢迎大家一起讨论.    首先要明白的是& ...

  7. 嵌入式Linux中I2C设备驱动程序的研究与实现

    I2C是"Inter Integrated Circuit Bus"的缩写,中文译成"内部集成电路总线", 它是Philips 公司于20 世纪80 年代研发成 ...

  8. linux文件系统添加pcm,嵌入式linux中PCM音频编程实践

    嵌入式设备中经常需要用的音频,音频设备最原始的数据格式就是PCM,也就是大家常见的WAV,在linux中,音频编程使用最多的就是alsa框架,下面就来看一下pcm音频的编程实例吧. 首先需要包含头文件 ...

  9. JPEG 原理详细实例分析及其在嵌入式 Linux 中的应用

    http://www.ibm.com/developerworks/cn/linux/l-cn-jpeg/index.html 一.系统架构 本文以一个实际的产品为例,来说明 JPEG 在其中的应用. ...

最新文章

  1. 在鱼眼和全向视图图像的深度学习方法
  2. GPU信息查看以及确认Pytorch使用了GPU计算模块进行深度学习的训练
  3. windows7 ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务 的解决方法
  4. zoj 3707 Calculate Prime S
  5. 如何理解文件存取单位 -- 块(block)
  6. php 走马灯轮播,Vue.js轮播图走马灯代码实例(全)
  7. 蓝桥杯 BASIC-18 基础练习 矩形面积交
  8. 树莓派python开发教程_树莓派Raspberry开发从基础到进阶视频+设计资料超详细教程下载...
  9. mysql服务器磁盘空间耗尽_一次服务器磁盘空间不足导致的一系列问题
  10. asp html5留言板,ASP.NET MVC 开发实例:简单留言板的开发
  11. 三人表决器实验报告总结_三人表决器实验报告
  12. 计算机控制系统信号恢复之零阶保持器
  13. 一句话理解cmp_to_key函数
  14. 5G时代传统室内覆盖方案迎挑战,融合室分系统应运而生
  15. 人民币与美元汇率兑换程序
  16. Vue和SuperSlide做轮播效果
  17. 玩转肺癌目标检测数据集Lung-PET-CT-Dx ——④转换成PASCAL VOC格式数据集
  18. turtle 绘画实例1 画圆
  19. 滑稽,使用paddle轻松搞定抠图,妈妈再也不用担心我不会抠图了
  20. 网络安全行业有哪些认可度比较高的证书呢?

热门文章

  1. 【笔记】期权v1.0(python版)
  2. 关于管理学中的九型人格,测测你属于哪种?
  3. 加密内存卡 TF 卡歌曲或资料拷贝出来的方法,完全可行!
  4. OpenVINO 2022.3之七:OpenVINO 预处理API提升模型推理性能
  5. 我和TrueChain初链的“初恋”
  6. geostudio滑坡建模做稳定性分析和得到变形图及相关问题解决
  7. PaddleDetection目标检测之水果检测(上)(yolov3_mobilenet_v1)
  8. [转载]茶话之四:政和工夫英伦打李鬼
  9. 基于STM32的超声波倒车检测装置
  10. 重庆抵扣联信息系统服务器,增值税专用发票抵扣联信息采集系统