嵌入式linux下sqlite应用
《一、嵌入式sqlite库的移植》
FM001 Sqlite3动态库移植模块设计
- 功能描述
SQLite是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。它是一个零配置的数据库,这意味着与其他数据库一样,您不需要在系统中配置。
就像其他数据库,SQLite 引擎不是一个独立的进程,可以按应用程序需求进行静态或动态连接。SQLite 直接访问其存储文件
- 不需要一个单独的服务器进程或操作的系统(无服务器的)。
- SQLite 不需要配置,这意味着不需要安装或管理。
- 一个完整的 SQLite 数据库是存储在一个单一的跨平台的磁盘文件。
- SQLite 是非常小的,是轻量级的,完全配置时小于 400KiB,省略可选功能配置时小于250KB。
- SQLite 是自给自足的,这意味着不需要任何外部的依赖。
- SQLite 事务是完全兼容 ACID 的,允许从多个进程或线程安全访问。
- SQLite 支持 SQL92(SQL2)标准的大多数查询语言的功能。
- SQLite 使用 ANSI-C 编写的,并提供了简单和易于使用的 API。
- SQLite 可在 UNIX(Linux, Mac OS-X, Android, iOS)和 Windows(Win32, WinCE, WinRT)中运行,可以直接将监控记录的****.db拿出来在Linux或者Windows上打开、解析。
- 设计意图和实现方法说明
Sqlite移植方法如下:
- sqlite3库的下载
Sqlite3下载:http://www.sqlite.org/download.html下载linux版本的源码
- Sqlite3的交叉编译
Configure
执行configure,指定交叉编译链,生成编译所需要的Makefile
进入src目录,./configure CC=arm-wrs-linux-gnueabi-armv5tel-glibc_small-gcc --host=arm-wrs-linux-gnueabi --prefix=/usr/tmp/sqlite3/
Make && make install
在src目录下执行make 生成 libsqlite3.so.0.8.6
Strip
编译出来的库文件比较大,BSP可能没有足够的空间,使用strip用来去除目标文件中的一些符号表、调试符号表信息,以减小程序的大小,libsqlite3由2840k减少到840K
【Linux】$ arm-wrs-linux-gnueabi-strip libsqlite3.so.0.8.6
- sqlite3库的运行链接
程序运行所需要的依赖库一般在系统目录下的/lib,此次项目由于不涉及BSP 的更改,
最终的sqlite3库就不能放置在/lib目录下,通过linux全局变量,指定链接库路径方式调用。
在startapp 中加入pcap库路径:
LD_LIBRARY_PATH=/app/lib:$LD_LIBRARY_PATH
- sqlite3库常用C接口介绍
打开数据库:Sqlite3_Open
创建表:Sqlite3_CreateTable
执行数据库语句:sqlite3_exec
写二进制:
{
准备插入语句:sqlite3_prepare()
绑定二进制结构体参数:sqlite3_bind_blob
执行:sqlite3_step
}
嵌入式linux下sqlite应用相关推荐
- 嵌入式Linux下的Qt环境搭建
嵌入式Linux下的Qt环境搭建 本文介绍如何在嵌入式Linux开发板上配置Qt运行环境,并进行Qt程序运行测试 一.tslib编译 要想Qt 支持触摸需要编译 tslib ,以生成触摸相关插件. t ...
- 嵌入式 linux下利用backtrace追踪函数调用堆栈以及定位段错误
嵌入式 linux下利用backtrace追踪函数调用堆栈以及定位段错误 2015-05-27 14:19 184人阅读 评论(0) 收藏 举报 分类: 嵌入式(928) 一般察看函数运行时堆栈的 ...
- 嵌入式Linux 软件界面,嵌入式Linux下的图形用户界面系统设计
为了满足嵌入式系统的界面设计需求,给出了一种图形用户界面系统SKY-GUI的设计思路和其在嵌入式Linux环境下的实现方法.SKY-GUI有四大组成部分:输入抽象层.显示抽象层.事件系统和窗口系统.其 ...
- 南京邮电大学嵌入式系统开发实验5:嵌入式Linux下LED报警灯驱动设计及编程
实验5 嵌入式Linux下LED报警灯驱动设计及编程 一.实验目的 理解驱动本质,掌握嵌入式Linux系统下驱动开发相关知识,包括端口寄存器访问.接口函数编写.和文件系统挂接.注册及相关应用编程等知 ...
- 嵌入式linux音频播放器设计,基于嵌入式Linux下Madplay音频播放器设计论文.docx
基于嵌入式Linux下Madplay音频播放器设计论文 滁州职业技术学院计算机应用技术专业毕业论文PAGE I 滁州职业技术学院信息工程系--2015届计算机应用专业毕业论文 姓 名: 周杰 班 级: ...
- 嵌入式linux进行视频监控,嵌入式Linux下的视频监控解决方案
原标题:嵌入式Linux下的视频监控解决方案 在嵌入式工控板上接一个摄像头进行视频监控,看起来比较容易实现,但往往是"理想很丰满.现实很骨感".历经千辛万苦效果却不是很理想,本文就 ...
- gsm基于linux程序,基于嵌入式Linux下GSM模块的短信收发系统设计
摘要:移动通信中的短消息业务以其方便.可靠和价廉得到了广泛应用,本文在嵌入式Linux系统中,通过西门子MC35模块,实现了短信收发系统,该系统采用PDU短信模式,能支持中文短信.程序设计采用异步事件 ...
- 嵌入式linux查看usb设备驱动程序,嵌入式Linux下USB驱动程序的设计
嵌入式Linux下USB驱动程序的设计 usb概念: USB(Universal Serial Bus)即通用串行总线,是一种全新的双向同步传输的支持热插拔的数据传输总线,其目的是为了提供一种兼容不 ...
- 嵌入式linux中断驱动,嵌入式Linux下硬件中断驱动程序的开发.pdf
嵌入式Linux下硬件中断驱动程序的开发.pdf 2003 年 6 月 航空精密制造技术 Jun. 2003 第 39 卷 第 3 期 AVIATION PRECISION MANUFACTURING ...
最新文章
- WebDriver 识别反爬虫的原理和破解方法~
- Sqoop数据迁移原理及基本框架
- 原来这就是Java代码生成器的原理啊,太简单了
- dll文件的c++制作
- JS 获取浏览器、显示器 窗体等宽度和高度
- CentOS7下分布式文件系统FastDFS的安装 配置 (单节点)
- 数据库加一列,cursor:pointer
- 在SOUI中使用线性布局
- 题目:[NOIP 2011]计算系数
- mysql参数积累 持续更新。。。
- 高效而轻松的sed命令
- 每日一练||第二周汇总
- 解决Macbook互联网不能共享 因为它是受802.1X保户问题
- 《网络攻防》 免杀原理与实践
- Hadoop分析NCDC气象数据
- LocalDateTime 的用法
- Currency Trading: Dollar in a Funk as Traders Bet on Slow Rebound
- 武汉大学计算机学院李俊,GML空间数据存储技术研究.pdf
- Angular------win10搭建Angular环境并运行hello-world
- Java基本计算方法
热门文章
- 用VB操作注册表 [转]
- F# 图形数学基础。
- 游戏建模过程中如何布线?建模布线原理和技巧
- 文档习惯之格式篇 用文档逼疯一个人的五种办法
- 云网融合趋势下,视觉云如何颠覆媒体体验?
- 【一步教学,一步到位】拼多多社招三面多久给结果
- JavaWeb自学笔记02
- linux 用户 组区别吗,Linux用户组之主组和附加组
- ”VT-x is not available (VERR_VMX_NO_VMX)“ 和 “VBoxManage: error: Details: code NS_ERROR_FAILURE”问题
- PC微信机器人之实战分析微信图片加密解密