准备
- 主机平台:Ubuntu 16.04 LTS(x64)
- 目标平台:ARM40-A5D3
- 编译工具链:gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabi
1、下载 SQLite3源码
选择SQLite3.24.0版本,下载sqlite-autoconf-3240000.tar.gz
2、解压源码包
先把下载的源码复制到主机(以 Ubuntu 为例),再进行解压。
$ cd
$ mkdir sqlite3 #在主机当前账户创建工作目录
$ cd sqlite3 #进入工作目录中
$ cp /media/sda1/sqlite-autoconf-3240000.tar.gz ./ #复制SQLite3源码到该目录下
$ tar xzvf sqlite-autoconf-3240000.tar.gz #解压
$ cd sqlite-autoconf-3240000 #进入解压后的目录
3、配置编译选项
$ mkdir ../install #创建安装目录
$ export PATH=$PATH:/opt/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabi/bin/ #交叉编译工具路径加入系统环境变量,必须!
$ ./configure --host=arm-linux-gnueabi --prefix=/home/jonny/sqlite3/install
- –host: 指定交叉编译工具,一般为arm-none-linux-gnueabi、arm-linux-gnueabihf、arm-linux等,具体要和目标板用的交叉编译工具对应。
- –prefix: 指定安装目录,编译后的文件会全部放在安装目录中。注意:必须是绝对路径!
4、编译
$ make
$ make install
5、去除调试信息
- 使用交叉编译工具 strip 去除 sqlite3 的调试信息
$ cd ../install/bin
$ arm-linux-gnueabi-strip sqlite3
- 压缩动态库 libsqlite3.so.0.8.6 文件。
$ cd ../lib
$ arm-linux-gnueabi-strip libsqlite3.so.0.8.6
6、复制文件
通过sftp、nfs或者U盘等方式,将 sqlite3 复制到目标板 /usr/sbin 目录,将动态库文件 libsqlite3.so.0.8.6 复制到目标板 /usr/lib 目录,并对动态库做链接。
root@ARM40:# cp sqlite3 /usr/sbin
root@ARM40:# cp libsqlite3.so.0.8.6 /usr/lib
root@ARM40:# cd /usr/lib
root@ARM40:# ln -s libsqlite3.so.0.8.6 libsqlite3.so.0
root@ARM40:# ln -s libsqlite3.so.0.8.6 libsqlite3.so
7、运行测试sqlite3
在目标板上执行 sqlite3 命令,看到如下信息说明 sqlite3 移植成功!
root@ARM40:# sqlite3
SQLite version 3.24.0 2018-06-04 19:24:41
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite> .quit
使用 .help 查看帮助,使用 .quit 退出 sqlite 命令。
感谢www.veryarm.com的无私奉献,以上内容均为参考“SQLite3移植到ARM Linux教程”修改而来。