sqlite3嵌入式数据库的ARM-Linux移置详解
1.1 sqlite
简介(跳过 )
1.2
下载代码(跳过
)
1.3
交叉编译sqlite库准备工作:

1.
取得一个 arm-linux-gcc 的编译器。
2. sqlite
的源码 sqlite-3.0.8.tar.gz (本文以)好了,我们可以开始了。
 
这里设 arm-linux-gcc /usr/local/arm-linux/bin/
目录下解压sqlite-3.0.8.tar.gz /usr/local/arm-linux/sqlite

# tar zxvf sqlite-3.0.8.tar.gz -C /usr/local/arm-linux/sqlite
# cd /usr/local/arm-linux/sqlite
将目录下的 configure 文件的

19206
{ (exit 1); exit 1; }; }改为 { (echo 1); echo 1; }; }
20107
{ (exit 1); exit 1; }; }改为
{ (echo 1); echo 1; }; }
20514
{ (exit 1); exit 1; }; }改为
{ (echo 1); echo 1; }; }
20540
{ (exit 1); exit 1; }; }改为
{ (echo 1); echo 1; }; }
# mkdir /usr/local/arm-linux/sqlite-arm-linux
# cd /usr/local/arm-linux/sqlite-arm-linux
设置交叉编译环境# export PATH=/usr/local/arm-linux/bin:$PATH

配置: # ../sqlite/configure --host=arm-linux --prefix=/usr/local/arm-linux/sqlite-arm-linux
注意:这里不用写成了 "../sqlite/configure --host=arm-linux --prefix=/usr/local/arm-linux/sqlite-arm-linux/"这最后一个斜杠"/"不要带上了。如果一切顺利的话,会在/usr/local/arm-linux/sqlite-arm-linux目录下生成一些相关文件
:
config.log
config.status
libtool
Makefile
sqlite3.pc
/usr/local/arm-linux/sqlite-arm-linux/Makefile文件的 23

BCC = arm-linux-gcc -g -O2
BCC = gcc -g -O2
编译安装
:
# make
# make install

注意: "# make install" 这一步将会在 /usr/local/arm-linux/sqlite-arm-linux/lib 生成库文件
# cd lib
# file libsqlite3.so.0.8.6
       libsqlite3.so.0.8.6: ELF 32-bit LSB shared object, ARM, version 1 (ARM), not stripped
此时生成的sqlite文件是还未strip过的,你可以使用命令“file sqlite”查看文件信息。用strip处理过后,将去掉其中的调试信息,执行文件大小也将小很多。

命令如下:
# arm-linux-strip libsqlite3.so.0.8.6


这样我们已经编译出了在ARM板上运行sqlite/usr/local/arm-linux/sqlite-arm-linux/bin/目录下的 sqlite3 文件下载到你的arm板上,方法很多,你需要根据自己的情况来选择。如ftp,nfs,串口等。好,开始运行 chmod +wx sqlite
[root@51Board var]# ./sqlite3 zieckey.db
./sqlite3: error while loading shared libraries: libsqlite3.so.0: cannot open shared object file: No such fileor directory
这里是因为刚刚编译时编译的是动态连接库形式的,所有我们还的将库文件下载到ARM板上。

/usr/local/arm-linux/sqlite-arm-linux/lib 目录下所有文件下到ARM板上。再次运行,
[root@51Board var]# ./sqlite3 zieckey.db
./sqlite3: error while loading shared libraries: libsqlite3.so.0: cannot open shared object file: No such fileor directory
还是出错,哦,我们没有设置环境变量,假设我们下在库文件在ARM板上的 /usr/qpe/lib/ 目录下,

这里设置环境就像下面:

[root@51Board var]# export LD_LIBRARY_PATH=/usr/qpe/lib:$LD_LIBRARY_PATH好了这样就可以运行了:
[root@51Board var]# ./sqlite3 aa.db
SQLite version 3.0.8Enter ".help" for instructions
sqlite>
看见sqlite>提示符号没有?成功了。哈哈!!

sqlite>.help好了。

现在 sqlite 已经在 arm-linux 下跑了起来