SQLite,是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,
它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。

在开始之前,我们需要确认有

  • SQLite3源码包;
  • 有交叉编译环境;
  • 有一块开发板;

1、下载 SQLite3源码
地址:http://www.sqlite.org/download.html
<ignore_js_op> 
选择稳定版本的源码

2、将源码包复制到主机工作目录下
如我的用户是gary,SQLite版本是 3.8.5 版本SQLite版本是 3.8.5 版本

1
2
3
4
5
6
cd
mkdir sqlite3                #在主机(如Ubuntu)创建工作目录
cd sqlite3                #进入工作目录中
cp /media/sda1/sqlite-autoconf-3080500.tar.gz ./        #复制SQLite源码到主机
tar zxvf sqlite-autoconf-3080500.tar.gz                        #解压
cd sqlite-autoconf-3080500                                #进入解压后的目录

3、配置编译选项

1
2
3
mkdir ../install                                        #创建安装目录
export PATH=$PATH:/usr/local/arm-2010q1/bin                #交叉编译工具路径加入系统环境变量
./configure --host=arm-none-linux-gnueabi --prefix=/home/gary/sqlite3/install

其中,

  • --host: 指定交叉编译工具,一般为arm-linux、arm-linux-gnueabihf、arm-none-linux-gnueabi等,具体要和板子用的交叉编译工具对应。
  • --prefix: 指定安装目录,编译后的文件会全部放在安装目录中。必须是绝对路径

4、编译安装

1
2
make
make install

5、压缩并复制
压缩并复制sqlite3文件到U盘

1
2
3
cd ../install/bin
arm-none-linux-gnueabi-strip sqlite3
cp libsqlite3.so.0.8.6 /media/sda1       #U盘目录

压缩并复制动态库libsqlite3.so.0.8.6文件到U盘

1
2
3
cd ../lib
arm-none-linux-gnueabi-strip libsqlite3.so.0.8.6
cp libsqlite3.so.0.8.6 /media/sda1

6、复制文件
在开发板上制作链接将U盘插入开发板上,将sqlite3复制到/usr/local/bin目录,将动态库文件复制到/usr/local/lib目录,并对动态库做链接。

1
2
3
4
5
cp /media/sda1/sqlite3 /usr/locl/bin
cp /media/sda1 libsqlite3.so.0.8.6 /usr/local/lib
cd /usr/local/lib
ln -s libsqlite3.so.0.8.6 libsqlite3.so.0
ln -s libsqlite3.so.0.8.6 libsqlite3.so

7、运行sqlite
在开发板上执行sqlite3命令,看到如下信息说明sqlite3移植成功!

1
2
3
4
5
6
7
sqlite3
 
SQLite version 3.8.5 2014-06-04 14:06:34
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite>

使用 .help 查看帮助,使用 .quit 退出sqlite命令。

最后,附上 arm-2010q1-202-arm-none-linux-gnueabi 编译好的sqlite3镜像,经测试在MYD-AM335X上可以正常运行:
<ignore_js_op> sqlite3.zip (444.45 KB, 下载次数: 1528) 

成功移植SQLite3到ARM Linux开发板的更多相关文章

  1. minigui移植到arm linux开发板上无法执行

    要保证目录下有该文件 /etc/MiniGUI.cfg 复制过程使用cp –af 强制复制

  2. 小白自制Linux开发板 二. u-boot移植

    上一篇:小白自制Linux开发板 一. 瞎抄原理图与乱画PCB  中我们做了一个小型而没用的开发板,用的是Licheepi Nano的镜像,那从本篇开始我们开始自己构建它的灵魂吧. 我们都知道,PC在 ...

  3. 意法半导体STM32MP157A MPU加持,米尔科技首款ST Linux开发板MYD-YA157C评测

    ST公司去年推出了MPU系列芯片,MPU系列不同于以往产品,它既包含有ARM公司Cortex M 单片机核心,也包含有ARM公司Cortex A 应用处理器核心,以期将STM32单片机产品优势扩展到更 ...

  4. ARM嵌入式开发板

    iTOP-4412 ARM嵌入式开发板----主要特点 iTOP-4412开发平台是北京迅为电子研发设计的嵌入式开发板平台,核心板配备64位双通道2GB DDR3,16GBEMMC存储,三星原厂S5M ...

  5. 嵌入式Linux开发板

    嵌入式Linux开发板开发介绍: iTOP-4412嵌入式Linux开发板搭载三星Exynos四核处理器,配备1GB内存,4GB固态硬盘EMMC存储,独家配备三星S5M8767电源管理,配备Andro ...

  6. Linux开发板(树莓派)和服务器进行双向通信(socket)

    前言 ​ 物联网是目前嵌入开发必备的属性之一,我们常常需要把自己开发板和云端进行交互,本篇博文就记录一下. ​ 使用Socket来实现Linux开发板和服务器进行双向通信,Python中是默认集成了s ...

  7. Linux学习 :移植U-boot_2016.09到JZ2440开发板

    一.下载源码:ftp://ftp.denx.de/pub/u-boot/ 二.初始化编译: ①新建一个单板: cd board/samsung/ cp smdk2410 smdk2440 -rf   ...

  8. 小白自制Linux开发板 三. Linux内核与文件系统移植

    上一篇完成了uboot的移植,但是想要愉快的在开发板上玩耍还需要移植Linux内核和文件系统. 1.Linux内核 事实上对于F1C100S/F1C200S,Linux官方源码已经对licheepi ...

  9. 小白自制Linux开发板 六. SPI TFT屏幕修改与移植

    本文章参考:https://www.bilibili.com/read/cv9947785?spm_id_from=333.999.0.0 本篇通过SPI接口,使用ST7789V TFT焊接屏(13p ...

随机推荐

  1. UVa 12558 - Egyptian Fractions (HARD version)

    题目大意: 给出一个真分数,把它分解成最少的埃及分数的和.同时给出了k个数,不能作为分母出现,要求解的最小的分数的分母尽量大. 分析: 迭代加深搜索,求埃及分数的基础上,加上禁用限制就可以了.具体可以 ...

  2. springmvc学习笔记---idea创建springmvc项目

    前言: 真的是很久没搞java的web服务开发了, 最近一次搞还是读研的时候, 想来感慨万千. 英雄没落, Eclipse的盟主地位隐隐然有被IntelliJ IDEA超越的趋势. Spring从2. ...

  3. Apache CXF 103 CXF Basics - partial

    本Spike记录中内容,如无特别指出,均引用[1]. 0 引言 0.1 基本的Web服务术语 XML 业界的结构化交换信息表示的事实上的标准. XML namespace是在XML文档中提供唯一的命名 ...

  4. ZPPR016-在制品清单报表

    *&---------------------------------------------------------------------**& Report ZPPR016*&a ...

  5. ZOJ 1005 Jugs

    原题链接 题目大意:有一大一小两个杯子,相互倒水,直到其中一个杯子里剩下特定体积的水.描述这个过程. 解法:因为两个杯子的容积互质,所以只要用小杯子不断往大杯子倒水,大杯子灌满后就清空,大杯子里迟早会 ...

  6. tools/version.c

    /* *  linux/version.c * *  Copyright (C) 1992  Theodore Ts'o * *  May be freely distributed as part ...

  7. Hibernate设置派生属性(formula)

    一.Customer中包含的字段: private static final long serialVersionUID = 1L;    private Integer id;    private ...

  8. hdu1025 dp(最长上升子序列LIS)

    题意:有一些穷国和一些富国分别排在两条直线上,每个穷国和一个富国之间可以建道路,但是路不能交叉,给出每个穷国和富国的联系,求最多能建多少条路 我一开始在想有点像二分图匹配orz,很快就发现,当我把穷国 ...

  9. AJAX保留浏览历史的解决方案——hashchange()

    在ajax请求中,不能更新地址栏,地址栏上的“前进”和“后退”按钮就失效了,带来了另外一种糟糕的用户体验. 解决方案如下: 方案一:使用window. Onhashchange 事件 如下面Html片 ...

  10. 如何在python3.3用 map filter reduce

    在3.3里,如果直接使用map(), filter(), reduce(), 会出现 >>> def f(x): return x % 2 != 0 and x % 3 != 0  ...