SQL作为一种存储数据的数据结构,具有体积小(能堵存储的数据多),容易移植等优点。例如,在Ubuntu或者ARM开发板上被大量应用。下面就简单说一下SQL移植到ARM板的步骤。

下载源代码 (记得在家目录操作,共享目录有时候操作失败)
SQL数据库官方网站:
http://www.sqlite.org/
sqlite-autoconf-3240000.tar.gz

解压:
tar -xzvf sqlite-autoconf-3240000.tar.gz

2.进行配置
cd sqlite-autoconf-3240000/ (进入解压后的文件夹)

./configure --host=arm-linux --prefix=/home/gec/arm_sql
(–host是编译工具 ,–prefix 是库文件指定生成路径)

3.编译
(配置后生成makefile文件)
make
4.安装
make install

---------------------------移植到开发板-----------------
1.打包arm_sql 文件夹
tar -czvf arm_sql.tar.bz arm_sql/ (压缩库文件)

2.把压缩包下载到开发板中
arm_sql.tar.bz
scp arm_sql.tar.bz root@192.168.8.8???? (通过SSH协议)

3.解压压缩包
tar -xzvf arm_sql.tar.bz

4.配置库文件
mv ./arm_sql/lib/* /lib/ (把lib下的所有文件移动到ARM板的根目录的lib下)

5.配置工具路径
mv ./arm_sql/bin/* /bin/ (把bin下的所有文件移动到ARM板的根目录的bin下)
(sqlite3 命令可能需要修改权限) chmod 777 sqlite3

6.测试sqlite3 工具是否可用

数据库的使用编译方面需要注意的错误:

编译时出现如下错误: 因为arm-linux-gcc 工具链是没有数据库的。

gec@ubuntu:sql_c_select$ arm-linux-gcc open_sql.c -o open_sql
open_sql.c:2:57: fatal error: sqlite3.h: No such file or directory
compilation terminated.
1
2
3
//没有制定库路径

/tmp/cck8woBe.o: In function `main':
open_sql.c:(.text+0x194): undefined reference to `sqlite3_open'
1
2
( 需要链接动态库 -lsqlite3)

需要制定所使用的数据库:

arm-linux-gcc open_sql.c -o open_sql -I/home/gec/arm_sql/include
1
arm-linux-gcc open_sql.c -o open_sql_arm
-I/home/gec/arm_sql/include //-I 头文件路径名
-L/home/gec/arm_sql/lib   //-L 库文件路径名
-lsqlite3     //-l  链接第三方库的名称
---------------------