最近,因为项目的需要,我们购买了广州致远电子有限公司的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的功能被裁剪了很多,这也导致了很多命令是没有的。我们在将一些程序移植到嵌入式开发板上的时候,一定要意识到它与普通的操作系统之间的差别。