交叉编译SQLite3

SQLite是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的SQL 数据库引擎。 它是一个零配置的数据库,这意味着与其他数据库不一样,您不需要在系统中配置。 就像其他数据库,SQLite 引擎不是一个独立的进程,可以按应用程序需求进行静态或动态连接。 SQLite 直接访问其存储文件。

SQLite是一个轻量级的库,且用C语言实现,它的数据库就是一个文件,这说明它非常适合使用在小型的嵌入式设备。

SQLite3

1、先编译SQLite3,先到SQLite的官网

https://www.sqlite.org/download.html

找到sqlite-src-3360000.zip下载并解压

然后configure

./configure CC=arm-linux-gnu-gcc --host=arm-linux --prefix=/tmp/lib
make && sudo make install
cd /tmp/lib
ls
#返回 bin include lib

然后把bin里面的sqlite3拷贝到设备的/bin目录下,运行

$ sqlite3 database.db
sqlite3: error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directory

提示需要zlib的库,看来SQLite依赖zlib运行

libz和zlib是同一个东西都是表示名称叫z的库,以下不做解释

zlib

先到zlib的官网

https://zlib.net/

下载tar.gz的源码包

然后解压

这个要这么configure,不要问,问就是踩过坑

$ export CC=arm-linux-gnu-gcc
$ ./configure --prefix=/tmp/lib
$ make && sudo make install
$ cd /tmp/lib/lib
$ ls
libsqlite3.a libsqlite3.la libz.a libz.so libz.so.1 libz.so.1.2.11 pkgconfig

然后把所有libz的库拷到板子的/lib目录下

libz.a libz.so libz.so.1 libz.so.1.2.11

然后再运行sqlite3就可以运行了

简单尝试

SQL一般以.(点)开头以;表示结束

运行

# sqlite3 test.db
SQLite version 3.36.0 2021-06-18 18:36:39
Enter ".help" for usage hints.
sqlite> create table test (id int primary key,name char, age int);
sqlite> select *from test;
sqlite> insert into test values (1, 'zhangsan', 18);
sqlite> select *from test;
0|zhangsan|18
sqlite> .exit

简单解释

create table test创建一个表,起名为test

insert into test values (1, 'zhangsan', 18);录入一个行,name为zhangsan,age为18

select *from test;选择test里面的所有匹配项

.exit退出SQLite3应用

具体的SQLite3可以看网上有很多的SQL的教程。

交叉编译SQLite3的更多相关文章

  1. 基于s5pv210嵌入式linux系统sqlite3数据库移植

    基于s5pv210嵌入式linux系统sqlite3数据库移植 1.下载源码 http://www.sqlite.org/download.html 最新源码为3080100 2.解压 tar xvf ...

  2. Sqlite,libevent,openssl,mosquito交叉编译

    一.设置交叉编译环境 在makefile所在目录(或源代码根目录)打开终端. 在终端中设置交叉编译所需的临时环境变量(也可写到配置文件中设置为全局环境变量),其中交叉编译工具链的名称和目录需要根据实际 ...

  3. 收藏的技术文章链接(ubuntu,python,android等)

    我的收藏 他山之石,可以攻玉 转载请注明出处:https://ahangchen.gitbooks.io/windy-afternoon/content/ 开发过程中收藏在Chrome书签栏里的技术文 ...

  4. 移植sqlite

    一.参考文档 1.SQLite安装.编译与应用 2.gcc 生成 .a静态库和 .so动态库 二.下载sqlite 1.sqlite官方首页:https://www.sqlite.org/index. ...

  5. 树莓派学习笔记——交叉编译练习之SQLite3安装

    0.前言     本博文可能并没有太多使用价值.不过为了练习而练习.在树莓派上使用SQLite有非常多的方法,安装的方法也有非常多.     [1]假设使用Python,那么不必安装SQLite由于P ...

  6. 交叉编译Python-2.7.13到ARM(aarch32)—— 支持sqlite3

    作者:彭东林 邮箱:pengdonglin137@163.com QQ: 405728433 环境 主机: ubuntu14.04 64bit 开发板: qemu + vexpress-a9 (参考: ...

  7. 交叉编译Python-3.6.0到aarch64/aarch32 —— 支持sqlite3

    参考 https://datko.net/2013/05/10/cross-compiling-python-3-3-1-for-beaglebone-arm-angstrom/ 平台 主机: ubu ...

  8. 关于SQLite3 编译及交叉编译的一些问题

    from : http://blog.sina.com.cn/s/blog_5f2e119b0101ibwn.html SQLite3 (http://www.sqlite.org)是一个非常强大的小 ...

  9. Ubuntu实现树莓派交叉编译

    一.交叉编译 在一个平台上生成另一个平台上的可执行代码.为什么要大费周折的进行交叉编译呢?一句话:不得已而为之.有时是因为目的平台上不允许或不能够安装所需要的编译器,而又需要这个编译器的某些特征:有时 ...

  10. sqlite3移植到arm linux

    1,环境: 软件:linux:2.6.38 硬件:6410 交叉编译工具:arm-linux-gcc 也适用于其他linux平台. 2,步骤: 1>下载sqlite3源码包: http://ww ...

随机推荐

  1. Vue.js 组件基础

    1.前言 本节讲述vue组件的基本格式以及实际开发的应用场景,本节内容兼容Vue2.x与Vue3.x 2.组件基础 组件的本质其实就是一个对象,这个对象包含多个属性,常见的属性有:template/d ...

  2. Java框架 —— Spring

    Spring 简介   一般来说,Spring指的是SpringFramework,它提供了很多功能,例如:控制反转(IOC).依赖注入 (DI).切面编程(AOP).事务管理(TX) 主要 jar ...

  3. Qt No Target Architecture

    在QT中引入processthreadsapi.h,如果出现 "No Target Architecture",需要在processthreadsapi.h前引入windows.h ...

  4. 深入理解 HTTP 协议:从基础到实践全解析

    在当今数字化时代,HTTP 协议如同互联网世界的"语言",支撑着无数网页浏览.数据传输和在线交互.无论你是初涉编程的新手,还是经验丰富的开发者,深入掌握 HTTP 协议都至关重要. ...

  5. git 基础操作 && 在"develop"分支修改动但不想提交切换到"master"分支(最后)

    测试学习准备条件:一个目录,含不含有文件都可以,创建一个test.txt 1. 创建空仓库 git init 2. 修改过后,添加到本地仓库 添加指定的文件,如果一个以上,文件名空格隔开 git ad ...

  6. 在分布式追踪系统中使用 W3C Trace Context

    在分布式追踪系统中使用 W3C Trace Context https://dev.to/luizhlelis/using-w3c-trace-context-standard-in-distribu ...

  7. 在 ASP.NET Core 中进行打包 (Bundling) 和紧缩 (Minification)

    在 ASP.NET Core 中进行打包 (Bundling) 和紧缩 (Minification) Bundler & Minifier for Visual Studio 2019 Bun ...

  8. Linux 查看 && 修改端口范围限制

    1.显示当前临时端口的范围: sysctl net.ipv4.ip_local_port_range或 cat /proc/sys/net/ipv4/ip_local_port_range一般情形下: ...

  9. Qt开源作品7-高亮按钮控件

    一.前言 这个高亮按钮控件并非本人原创作品,是参考的Qt界的一个大师级人物公孙二狗的作品,各位有兴趣可以去搜索查看,在原作者的代码上,我只是改成了自己的控件的框架结构,然后完善了一些细节,比如增加了各 ...

  10. 前后端分离模式下Java Web开发中的技术栈概图

    参考链接1:前后端的分离模式 参考链接2:浅谈前后端分离开发模式 参考链接3:前后端分离开发模式介绍