转:sqlite3在嵌入式Linux上的移植步骤详解
在前面的文章中,对sqlite3进行了一些零碎知识点分析, 本文分析一下sqlite3如何在嵌入式Linux上进行移植使用。sqlite3作为一种跨平台可移植的轻型 数据库,非常适合在嵌入式linux下使用,由于嵌入式linux主要使用ARM芯片,所以相比较PC,运算能力和内存 较差。sqlite3在嵌入式linux下运行,主要是以一个独立的应用程序来运行的,这也就意味着,当我们将sqlite3编译生成的 可执行程序 sqlite3 (包括必要的动态库)拷贝到 ARM平台后,是可以直接作为一个普通的应用程序来操作执行的,也就是相当于 一个小型的数据库,只不过我们与sqlite3交互是通过shell命令来实现的。当然这个数据库提供API接口,我们在自己的工程中,包含相关的头文件,就可以直接调用API接口函数, 实现与sqlite3的交互。
sqlite3在嵌入式Linux ARM 平台的移植步骤如下:
0、我的开发环境为ubuntu,交叉编译环境为 arm-linux-gnueabihf-gcc ,最好确保 已经安装了 automake、autoconf、libtool等工具,这些工具都是自动make所需的必要工具。
1、sqlite3官网下载源文件 sqlite-autoconf-3290000.tar.gz,官网上有多种类型,我们要选择 autoconf 类型,可以自动编译配置,如下图所示:
2、解压源文件:
tar -zxvf sqlite-autoconf-3290000.tar.gz
3、我们在同级目录下,创建一个 release 目录,用于存放编译输出的各种文件,包括可执行文件、头文件、库文件等。
mkdir release
4、切换到源码目录下
cd sqlite-autoconf-3290000
5、配置交叉编译环境,输出目录参数,这也是整个移植步骤中,最重要的一步,毕竟我们需要告诉sqlite3,我们想要移植到的目标环境所需的交叉编译器和编译输出存放地址。
./configure --host=arm-linux-gnueabihf --prefix=/opt/extern-lib/sqlite3/release
这里 --host 就是目标板的 交叉编译器 类型,--prefix就是输出 目录,注意这个输出目录 的路径必须为绝对路径。
6、运行 make
7、运行 make install,这里需要注意一下,在README中,只有make,没有make install,但是只执行make,发现在输出目录release中是没有任何文件的,所以需要 再次运行 make install。
8、前面的步骤都没有报错的情况下,在release目录下会生成 bin、include、lib、share文件目录,存放了sqlite可执行文件、库文件、API接口头文件等。如果编译报错,一般都是我们自己的交叉编译器有问题,或者没有 安装 make 所需的一些工具,比如libtool等,这个可以参考readme中的介绍,先安装相关的 自动编译工具。
9、将bin/sqlite3 可执行文件 拷贝到 开发板 /usr/bin 目录下,因为sqlite是作为独立可执行程序来执行的。
10、将lib/libsqlite3.so libsqlite3.so.0 libsqlite3.so.0.8.6 拷贝到 开发板 /usr/lib目录下,主要是3个动态链接库,一个是库文件,另外两个是 链接。
11、注意:在使用 tftp 实现步骤9、10的时候,发现会改变 这些文件的 权限,比如 sqlite3 的源权限为:
-rwxr-xr-x
tftp 下载后,就变成了 -rw-r--r--,要么自己修改权限,要么最好使用U盘拷贝。
12、此时在开发板上,就可以直接运行sqlite3 可执行 程序了。而我们自己的工程项目,只需要包含 include下的头文件,就可以直接使用sqlite3提供的各种C API接口函数了。
————————————————
版权声明:本文为CSDN博主「猪哥-嵌入式」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u012351051/article/details/100606712