将sqlite3移植到嵌入式Linux开发板M6708上

简介: 最近,因为项目的需要,我们购买了广州致远电子有限公司的M6708-T工控板(预装Linux系统),准备将sqlite3移植到本嵌入式开发板上。

最近,因为项目的需要,我们购买了广州致远电子有限公司的M6708-T工控板(预装Linux系统),准备将sqlite3移植到本嵌入式开发板上。笔者参考了网上的很多文章,均无法达到成功移植的目的。在多方摸索之下,终于采用了一种简单的方法成功实现了移植。本文介绍如何成功地将sqlite3移植到M6708-T工控板上,可供相关的开发人员参考。

准备工作
在本机上安装好Linux系统(一般都是安装在虚拟机上面的),并按照工控板的用户手册在Linux系统上安装交叉开发的工具链。
将工控板上电,能够通过串口或网络等方式登录到Linux系统中。这里建议为工控板设置静态的ip地址,这样以后上传程序比较方便。
登录到sqlite的官网(https://www.sqlite.org/)上去下载最新的sqlite源代码,如下截图所示:
这里写图片描述

移植步骤
第一步:将sqlite源代码拷贝到虚拟机的Linux系统目录中,并使用命令tar xvf sqlite-autoconf-3200100.tar.gz解压,生成sqlite-autoconf-3200100目录,转到该目录中,可看到文件列表如下截图所示:
这里写图片描述
第二步:使用交叉编译工具编译代码,生成sqlite的可执行文件。在编译之前,可以用echo $CC命令查看系统上的编译工具是否是交叉编译工具而非系统自带的gcc,执行该命令后的结果如下截图所示:
这里写图片描述
确认交叉编译工具正确之后,便可执行命令$CC sqlite3.c shell.c -o sqlite3 -lpthread –ldl生成可执行文件sqlite3,执行该命令后的结果如下截图所示:
这里写图片描述
第三步:将生成的可执行文件sqlite3从虚拟机拷贝到本机目录下,并利用FTP工具将之上传到工控板的目录下。这里,笔者使用了FileZilla软件将sqlite3上传到/usr/local/DT/sqlite目录下,如下截图所示:
这里写图片描述
第四步:将上传之后的sqlite3文件移动到/usr/bin目录下,并赋予可执行的权限。执行mv sqlite3 /usr/bin/命令移动文件,并使用命令chmod 777 sqlite3修改权限。命令执行过程的截图如下所示:
这里写图片描述
第五步:执行命令sqlite3即可成功启动数据库。数据库启动之后的截图如下所示:
这里写图片描述
通过以上五个步骤,sqlite就被成功移植到了工控板上,接下来便可以进行建表等操作了,也可以编写代码调用数据库的API实现对数据的存储及读取操作了。

总结
在很多参考文章中,都是通过运行configure和make命令来生成sqlite3可执行文件的,笔者最开始也使用了这种方法,但生成的可执行文件在工控板上无法运行。笔者重复试了很多次,也没有找到无法成功移植的原因。因此采用了在本文中描述的方法,轻松实现了sqlite数据库的移植。
当然,相比于PC版的Linux来说,嵌入式开发板上的Linux的功能被裁剪了很多,这也导致了很多命令是没有的。我们在将一些程序移植到嵌入式开发板上的时候,一定要意识到它与普通的操作系统之间的差别。


这里写图片描述

目录
相关文章
|
7月前
|
Linux 编译器 vr&ar
linux交叉编译一些常用依赖库util-linux,zlib,sqlite3,eudev ,openssl,libpng,glibc
linux交叉编译一些常用依赖库util-linux,zlib,sqlite3,eudev ,openssl,libpng,glibc
336 1
|
4月前
|
NoSQL Linux C语言
嵌入式GDB调试Linux C程序或交叉编译(开发板)
【8月更文挑战第24天】本文档介绍了如何在嵌入式环境下使用GDB调试Linux C程序及进行交叉编译。调试步骤包括:编译程序时加入`-g`选项以生成调试信息;启动GDB并加载程序;设置断点;运行程序至断点;单步执行代码;查看变量值;继续执行或退出GDB。对于交叉编译,需安装对应架构的交叉编译工具链,配置编译环境,使用工具链编译程序,并将程序传输到开发板进行调试。过程中可能遇到工具链不匹配等问题,需针对性解决。
159 3
|
6月前
|
存储 编解码 Ubuntu
【QT】linux下alsa库的移植和QT中音视频的处理&笔记
【QT】linux下alsa库的移植和QT中音视频的处理&笔记
|
6月前
|
Linux
【GEC6818开发板】Linux驱动中printk无法在终端输出显示
【GEC6818开发板】Linux驱动中printk无法在终端输出显示
|
6月前
|
SQL Linux 数据库
Linux上sqlite的安装和使用方法以及在QT中如何使用sqlite&笔记总结
Linux上sqlite的安装和使用方法以及在QT中如何使用sqlite&笔记总结
|
6月前
|
网络协议 Linux 编译器
【原创】EtherCAT主站IgH解析(二)-- 如何将Igh移植到Linux/Windows/RTOS等多操作系统移植指南
EtherCAT主站方案对比:商业的如Acontis、TwinCAT3和开源的igh、SOEM。SOEM易移植但功能和实时性不足,适合简单应用;igh功能强大,实时性能优秀,基于内核态,适合复杂场景。igh能移植到其他RTOS,但需克服多任务无调度的挑战。依赖操作系统服务如定时器、内存分配,适合Linux内核,但移植到裸机复杂。
319 0
|
7月前
|
Linux 编译器 网络安全
嵌入式Linux移植dropbear
嵌入式Linux移植dropbear
261 3
|
7月前
|
JSON Ubuntu Linux
LuaJit交叉编译移植到ARM Linux
LuaJit交叉编译移植到ARM Linux
172 1
|
7月前
|
Linux 编译器 测试技术
嵌入式 Linux 下的 LVGL 移植
嵌入式 Linux 下的 LVGL 移植
275 0
|
7月前
|
存储 Linux Shell
嵌入式 Linux 移植与系统启动方法
嵌入式 Linux 移植与系统启动方法
126 0