宿主PC机上安装sqlite数据库
这里使用的sqlite数据库的版本是sqlite-3.5.9,下载地址是:http://sqlite.org/sqlite-3.5.9.tar.gz,将下载到的sqlite-3.5.9.tar.gz压缩包拷贝到fedora7 Linux操作系统的/root目录下,然后在终端进入root并解压,操作命令如下:
[root@localhost /]# cd /root
[root@localhost root]#tar zxvfsqlite-3.5.9.tar.gz
这会在/root目录中生成一个sqlite-3.5.9的目录。
接着进入sqlite-3.5.9目录,并采用默认配置生成Makefile文件,然后编译、安装sqlite,操作命令如下:
[root@localhost root]#cd sqlite-3.5.9;
[root@localhost sqlite-3.5.9]#./configure ;
[root@localhost sqlite-3.5.9]#Make ;
[root@localhost sqlite-3.5.9]#make install ;
这会在fedora7 Linux操作系统的/usr/local(这是默认的安装路径)生成bin、include和lib三个目录,其中bin目录中的文件是sqlite的可执行文件sqlite3;include目录中的文件是libsqlite3.a、libsqlite3.la、libsqlite3.so、libsqlite3.so.0和libsqlite3.so.0.8.6;lib目录中的文件是sqlite3.h,它是sqlite的头文件。
因为上面是按默认路径/usr/local安装sqlite的,此时只要在终端直接输入sqlite3,出现如下输出信息表示sqlite数据库安装成功。
[root@localhost sqlite-3.5.9]#sqlite3
sqlite version 3.5.9
Enter".help" for instructions
sqlite>
安装交叉编译环境下的sqlite数据库
这里使用的sqlite数据库的版本是sqlite-3.5.9,下载地址是:http://sqlite.org/sqlite-3.5.9.tar.gz,将下载到的sqlite-3.5.9.tar.gz缩包拷贝到fedora7 Linux操作系统的/usr/local/arm目录下,然后在终端进入/usr/local/arm并解压,操作命令如下:
[root@localhost /]#cd /usr/local/arm ;
[root@localhost arm]#tar zxvf sqlite-3.5.9.tar.gz;
这会在/usr/local/arm目录中生成一个sqlite-3.5.9的目录。
与在PC环境下编译sqlite3不同,不能通过sqlite-3.5.9目录下的configure脚本来生成Makefile文件。而是必须手动修改Makefile文件。在sqlite-3.5.9目录下有一个Makefile范例文件为Makefile.linux-gcc,修改这个文件并重命名为Makefile,操作命令如下:
[root@localhost arm]#cd sqlite-3.5.9; //进入sqlite-3.5.9目录
[root@localhost sqlite-3.5.9]#cp Makefile.linux-gccMakefile ; //复制一个Makefile文件
[root@localhost sqlite-3.5.9]#gedit Makefile ; //修改Makefile文件
对Makefile的要作两个方面的修改,先将编译器和归档工具等换成交叉工具链中的对应工具,比如将gcc换成arm-linux-gcc;接着去掉与TCL相关的编译选项,因为在默认的情况下,会将编译sqlite3的Tcl语言绑定,但是把sqlite3移植到ARM-Linux交叉编译环境时并不需要,必须把两个和TCL有关的内容注释掉,具体修改如下:
把第17行的代码“TOP = ../sqlite”改为“TOP = .”;
把第73行的代码“TCC = gcc -O6”改为“TCC =arm-linux-gcc -O6”;
把第81行的代码“AR = ar cr”改为“AR = arm-linux-ar cr”;
把第83行的代码“RANLIB = ranlib”改为“RANLIB = arm-linux-ranlib”;
把第86行的待码“MKSHLIB = gcc -shared”改为“MKSHLIB = arm-linux-gcc-shared”;
把第96行的代码“TCL_FLAGS = -I/home/drh/tcltk/8.4linux”注释掉;
把第103行的代码“LIBTCL = /home/drh/tcltk/8.4linux/libtcl8.4g.a -lm –ldl”注释掉;
[root@localhost sqlite-3.5.9]#gedit main.mk //修改main.mk文件
把第63行的代码“select.o table.otclsqlite.o tokenize.o trigger.o \”修改为“select.o table.o tokenize.otrigger.o \”;
然后保存退出,至此完成了所有文件的修改工作,接下来进行编译sqlite,操作命令如下:
[root@localhost sqlite-3.5.9]#make ;
编译完成后,会在当前的sqlite-3.5.9目录下生成libsqlite3.a、sqlite3.h和sqlite3三个文件,它们分别是sqlite的库函数文件、头文件和应用程序文件。然后将sqlite3应用程序文件拷贝到fedora7 Linux操作系统下的/nfs/bin目录下,这样就可以在嵌入式开发平台(比如超级终端)上使用sqlite了。
把便携式卫星通信地球站监控系统的目标板和PC机连接起来,在PC机上打开超级终端,启动目标版的操作系统,然后在超级终端输入sqlite3,出现如下输出信息表示sqlite数据库安装成功。
[root@localhost /]# sqlite3
sqlite version 3.5.9
Enter ".help" for instructions
sqlite>
尽管在嵌入式交叉编译环境下和在PC机环境下安装sqlite数据库的方法不一样,但是在两种环境下生成数据库文件的存储格式是相同的,对数据库的操作也是一样的,并且在PC环境下和在嵌入式环境下可以操作同一个数据库。