SQLite向arm板子的移植

2023-11-12

SQLite向arm-linux的移植

SQLite是一个开源的嵌入式关系数据库,我们用它来管理从M0端接收的数据,将检测到的仓库信息存储起来。

  • SQLite环境的建立:
  1. 首先从下载最新版本的sqlite源码包,我下载的是sqlite-amalgamation-3.7.3.tar.gz,并将下载的文件解压。
  2. 在解压生成的 sqlite-3.7.3 目录下执行./configure--host=arm-none-linux-gnueabi--prefix=/home/linux/project/sqlite-arm,其中host为设置交叉编译器,prefix为设置存放编译生成文件的目录,sqlite-arm为跟sqlite-3.7.3同级的目录。

 

arm-none-linux-gnueabi: 编译器的版本要和内核版本一致,所以要根据自己的情况来决定。

/home/linux/project/sqlite-arm: 路径可根据自己的需要来修改。

 

  1. 执行上步操作之后会生成Makefile,打开Makefile文件,找到-DPACKAGE_STRING=\"sqlite\ 3.7.6.2\"处,把3.7.6.2前面的“\”和空格删除。(我使用的这个版本有个错误,其他的版本不一定有),然后直接执行make(要是这样make有错的话,可以在make之前先make clean一下,然后在make),生成可执行文件,然后再执行make install,配置环境变量。sqlite-arm目录下会生成bin、include、share和lib四个目录。

 

  • SQLite数据库的移植:
  1. 去掉/home/linux/project/sqlite-arm/bin目录下的sqlite3的调示信息(瘦身):arm-none-linux-gnueabi-strip sqlite3。(为了在PC环境下调试,最好备份一下sqlite3,一下瘦身的文件同理)
  2. 将sqlite3下载到开发板的/usr/bin目录:

cp sqlite3  /source/rootfs/usr/bin

3、在/home/linux/project/sqlite-arm/lib 中找到libsqlite3.so.0.8.6这个库文件,去掉调示信息后将libsqlite3.so.0.8.6拷贝到开发板目录/usr/lib下,在开发板目录/usr/lib下创建一个符号链接:ln -s libsqlite3.so.0.8.6   libsqlite3.so.0。这样你交叉编译的程序就可以使用sqlite3数据库了。

 

指令如下:

/home/linux/project/sqlite-arm/lib 下:

arm-none-linux-gnueabi-strip libsqlite3.so.0.8.6

cp   libsqlite3.so.0.8.6  /source/rootfs/usr/lib

在开发板目录/usr/lib下:

ln -s libsqlite3.so.0.8.6   libsqlite3.so.0

注:libsqlite3.so,libsqlite3.so.0是链接到libsqlite3.so.0.8.6的.

 

 

三、SQLite的测试:

开发板上输入:sqlite3。看是否能进入。

 

    查看“简单数据库测试程序”。(不兼容)

    测试程序中的重点,回调函数的使用。

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SQLite向arm板子的移植 的相关文章

  • 无法加载 JavaHL 库。- linux/eclipse

    在尝试安装 Subversion 插件时 当 Eclipse 启动时出现此错误 Failed to load JavaHL Library These are the errors that were encountered no libs
  • 如何通过替换为空页映射来取消映射 mmap 文件

    Linux 用户空间有没有办法用空页面 映射自 dev null 或者可能是一个空页面 重复映射到从文件映射的页面的顶部 对于上下文 我想找到这个 JDK bug 的修复 https bugs openjdk java net browse
  • 通过特定分隔符删除字符串

    我的文件中有几列 其中第二列有 分隔符 我想删除第二列中的第一个 第三个和第四个字符串 并将第二个字符串留在该列中 但我有正常的分隔符空间 所以我不知道 input 22 16050075 A G 16050075 A G 22 16050
  • 如何在bash中使用jq从变量中包含的json中提取值

    我正在编写一个 bash 脚本 其中存储了一个 json 值 现在我想使用 Jq 提取该 json 中的值 使用的代码是 json val code lyz1To6ZTWClDHSiaeXyxg redirect to http examp
  • 如何在 shell 脚本中并行运行多个实例以提高时间效率[重复]

    这个问题在这里已经有答案了 我正在使用 shell 脚本 它读取 16000 行的输入文件 运行该脚本需要8个多小时 我需要减少它 所以我将其划分为 8 个实例并读取数据 其中我使用 for 循环迭代 8 个文件 并在其中使用 while
  • 无法从 jenkins 作为后台进程运行 nohup 命令

    更新 根据下面的讨论 我编辑了我的答案以获得更准确的描述 我正在尝试从詹金斯运行 nohup 命令 完整的命令是 nohup java jar home jar server process 0 35 jar prod gt gt var
  • 所有平台上的java

    如果您想用 java 为 Windows Mac 和 Linux 编写桌面应用程序 那么所有这些代码都相同吗 您只需更改 GUI 即可使 Windows 应用程序更像 Windows 等等 如果不深入细节 它是如何工作的 Java 的卖点之
  • linux perf:如何解释和查找热点

    我尝试了linux perf https perf wiki kernel org index php Main Page今天很实用 但在解释其结果时遇到了困难 我习惯了 valgrind 的 callgrind 这当然是与基于采样的 pe
  • 尝试安装 LESS 时出现“请尝试以 root/管理员身份再次运行此命令”错误

    我正在尝试在我的计算机上安装 LESS 并且已经安装了节点 但是 当我输入 node install g less 时 出现以下错误 并且不知道该怎么办 FPaulMAC bin paul npm install g less npm ER
  • 两种情况或 if 哪个更快? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我必须制作一个 非常 轻的脚本 它将接受用户的选项并调用脚本中的函数来执行一些任务 现在我可以使用 IF 和 CASE 选项 但我想知道两
  • Linux 可执行文件与 OS X“兼容”吗?

    如果您在基于 Linux 的平台上用 C 语言编译一个程序 然后将其移植以使用 MacOS 库 它会工作吗 来自编译器的核心机器代码在 Mac 和 Linux 上兼容吗 我问这个问题的原因是因为两者都是 基于 UNIX 的 所以我认为这是真
  • 使用 sh 运行 bash 脚本

    我有 bash 脚本 它需要 bash 另一个人尝试运行它 sh script name sh 它失败了 因为 sh 是他的发行版中 dash 的符号链接 ls la bin sh lrwxrwxrwx 1 root root 4 Aug
  • 有谁知道在哪里定义硬件、版本和序列号。 /proc/cpuinfo 的字段?

    我想确保我的 proc cpuinfo 是准确的 目前它输出 Hardware am335xevm Revision 0000 Serial 0000000000000000 我可以在代码中的哪里更改它以给出实际值 这取决于 Linux 的
  • 将 jar 作为 Linux 服务运行 - init.d 脚本在启动应用程序时卡住

    我目前正在致力于在 Linux VM 上实现一个可运行的 jar 作为后台服务 我已经使用了找到的例子here https gist github com shirish4you 5089019作为工作的基础 并将 start 方法修改为
  • ftrace:仅打印trace_printk()的输出

    是否可以只转储trace printk 输出于trace文件 我的意思是过滤掉函数跟踪器 或任何其他跟踪器 中的所有函数 一般来说 您可以在选项目录中关闭选项 sys kernel debug tracing options Use ls显
  • 查找哪个程序运行另一个程序

    我有一个 NAS 运行在 Redhat Linux 的有限版本上 我按照指示破解了它 这样我就可以访问 shell 这很有帮助 我还做了一些修改 其他人也做过修改 除了一个问题之外 它们似乎都工作得很好 不知何故 每隔 22 天 系统就会关
  • 如何通过ssh检查ubuntu服务器上是否存在php和apache

    如何通过ssh检查Ubuntu服务器上apache是 否安装了php和mysql 另外如果安装的话在哪个目录 如果安装了其他软件包 例如 lighttpd 那么它在哪里 确定程序是否已安装的另一种方法是使用which命令 它将显示您正在搜索
  • 在脚本内使用不带密码的 sudo

    由于某种原因 我需要作为用户在没有 sudo 的情况下运行脚本 script sh 该脚本需要 root 权限才能工作 我认为将 sudo 放入 script sh 中是唯一的解决方案 让我们举个例子 script sh bin sh su
  • 如何使用 GOPATH 的 Samba 服务器位置?

    我正在尝试将 GOPATH 设置为共享网络文件夹 当我进入 export GOPATH smb path to shared folder I get go GOPATH entry is relative must be absolute
  • 如何更改 Apache 服务器的根目录? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 如何更改 Apache 服务器的文档根目录 我基本上想要localhost从 来 users spencer projects目录而不是

随机推荐

  • 数据本地存储方法

    存储到本地的数据类型有 数组 字典 字符串 对象类型的 1 字符串的本地存储 NSString str dsadasd NSArray arr NSSearchPathForDirectoriesInDomains NSLibraryDir
  • opencv-python中的腐蚀与膨胀函数

    1 图像的腐蚀 就像土壤侵蚀一样 这个操作会把前景物体的边界腐蚀掉 但是前景仍然是白色 这是怎么做到的呢 卷积核沿着图像滑动 如果与卷积核对应的原图像的所有像素值都是1 那么中心元素就保持原来的像素值 否则就变为零 这回产生什么影响呢 根据
  • Vision-Centric BEV Perception: A Survey (以视觉为中心的BEV感知综述)论文笔记

    原文链接 https arxiv org abs 2208 02797 1 引言 BEV表达包含了丰富的语义信息 精确定位和绝对尺度 可直接应用于下游任务如行为预测和运动规划 此外 BEV表达为融合不同视角 模态 时间和智能体的信息提供了物
  • nginx配置文件root和alias区别

    总结 alias指定的目录是准确的 root是指定目录的上级目录 并且该上级目录要含有location指定名称的同名目录 root的处理结果是 root路径 location路径 http后面的地址 alias的处理结果是 使用alias路
  • R语言的包bnlearn生成的概率图模型如何进行后续的检验和验证是否合理?有相关示例和论文吗?...

    bnlearn 包生成的概率图模型可以通过多种方法进行后续检验和验证 具体来说 可以考虑以下几种方法 对模型进行统计检验 以评估模型是否符合数据的分布 例如 可以使用Kolmogorov Smirnov检验 Lilliefors检验等 对模
  • condition update在分布式系统中设计

    condition update在分布式系统中设计 1 定义 condition update称为条件更新 用于分布式系统中数据一致性 能够保证在并发操作数据时的正确性 2 方式 1 可以通过version来保证condition upda
  • 解决pgAdmin4启动失败方法

    1 问题现象 有时pgadmin 4启动仅显示启动界面 或者 点击图标一直都没反应 启动界面用鼠标点击下就消失了 然后过很长时间就保错 the application server could not be contect 错误 比如一直出
  • python安装anaconda_安装Anaconda后,python出现import Error

    背景 Win10 VSCode下安装了Python3 6 4和一些package 有的package在site package路径下 在已经安装了Python3 6 4之后 又安装了Anaconda 安装设置都是默认的 Error出现 这时
  • qt控件学习笔记

    QToolBox控件 QToolBox控件 类似于下拉列表控件 头文件 include
  • Jenkins持续集成demo

    1 下载Jenkins的war包 官网地址 https jenkins io 点击下载 将jenkins war 部署到Tomcat中 本文使用的是Tomcat8 5 35 注意Tomcat需要配置账号密码 Tomcat7 是 manage
  • MySQL、Oracle中去重并保留最新的一条数据

    MySQL select from my table where id in select id from select id name group code max create time mt from my table group b
  • IDEA的设置

    terminal wsl2 setting gt tools gt Termianl gt shell path 填写wsl exe的绝对路 绝对路径的查找 wsl2 安装 https docs microsoft com en us wi
  • LA@向量组线性相关性

    文章目录 向量组线性相关性 线性相关 线性无关 多向量向量组线性相关 单向量向量组的线性相关性 单位向量向量组线性相关性 双向量向量组的线性相关性 双向量线性相关的几何意义 三向量线性相关的几何意义 包含零向量的向量组线性相关 概念迁移 线
  • STC89C51——中断系统

    前言 本文介绍基于常见的51单片机 即如下图的芯片 STC89C51具备5个中断源 中断源 优先级 中断请求标志位 中断允许控制位 外部中断0 0 IE0 EX0 定时器中断0 1 TF0 ET0 外部中断1 2 IE1 EX1 定时器中断
  • 2021 Web 前端热点笔试面试题总结【更新版】

    提醒 我只是答案的搬运工 如果在浏览中发现有错误 欢迎评论中提出来 我好修改 谢谢 简述异步和同步的区别 同步 浏览器访问服务器请求 用户看得到页面刷新 重新发请求 等请求完 页面刷新 新内容出现 用户看到新内容 进行下一步操作 异步 浏览
  • 指定岗位

    一 背景介绍 这里我们选择的是目前求职和招聘最常用的网站Bxxx 在采用其它方法的试验中 我们可能会遇到如下问题 不知道该怎么解析网址 自定义城市和岗位的搜索词 不知道怎么样批量爬取 这里指的是自动切页 不知道该怎么破解动态cookie的问
  • K8S 安装 Ingress Controller

    版本介绍 版本1 NGINX Ingress Controller nginx公司的nginx ingress NGINX Ingress Controller 由 F5 NGINX 开发和维护 docs nginx com 可在 GitH
  • Ubuntu命令介绍——echo

    echo是一个非常简单 直接的linux命令 将argument送出至标准输出 STDOUT 通常就是在显示器 monitor 上输出 为了更好的理解 不如先让我们跑一下 echo 命令好了 echo 你会发现只有一个空白行 然后又回到 s
  • k8s--基础--6.1--环境搭建--多master高可用集群

    k8s 基础 6 1 环境搭建 多master高可用集群 前提 使用root用户 1 机器 主机名 IP 说明 master1 192 168 187 154 2核4G 硬盘20G 核数最小要求是2 master2 192 168 187
  • SQLite向arm板子的移植

    SQLite向arm linux的移植 SQLite是一个开源的嵌入式关系数据库 我们用它来管理从M0端接收的数据 将检测到的仓库信息存储起来 SQLite环境的建立 首先从下载最新版本的sqlite源码包 我下载的是sqlite amal