分类: LINUX
2011-04-12 09:53:17
sqlite 数据库的ARM-Linux移置进行过程
准备工作:
1. 取得一个 arm-linux-gcc 的编译器。
2. sqlite的源码 sqlite-
好了,我们可以开始了。
这里设 arm-linux-gcc 在 /arm2410s/gui/tools/usr/local/arm/
解压sqlite-
# tar zxvf sqlite-3.8.8.tar.gz -C /usr/local/arm-linux/sqlite
# cd /usr/local/arm-linux/sqlite /sqlite-3.3.8
将目录下的 configure 文件的
19261行 { (exit 1); exit 1; }; }改为 { (echo 1); echo 1; }; }
19290行 { (exit 1); exit 1; }; }改为 { (echo 1); echo 1; }; }
20402行 { (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=/arm2410s/gui/tools/usr/local/arm/
配置:
# ./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目录下生成一些相关文件L我的怎么生成在了 /usr/local/arm-linux/sqlite /sqlite-3.3
config.log config.status libtool Makefile sqlite3.pc
改/usr/local/arm-linux/sqlite-arm-linux/Makefile文件的 BCC = arm-linux-gcc -g -O2 为 BCC = gcc -g -O2(23行)
编译安装:
# make
# make install(这里提示很多错误,一看看是***tcl.c
文件里的错。想起偶然看到的某贴子里说的系统里同有说是这个都是tcl相关的错误,可以先安装ActiveTcl以解决.假如你不需要tcl支持,那么这个错误可以这样避免在配置时命令如下:
./configure --host=arm-linux --disable-tcl --prefix=/usr/local/arm-linux/sqlite-arm-linux )
/usr/bin/install -c -d /usr/local/arm-linux/sqlite-arm-linux/lib
./libtool --mode=install /usr/bin/install -c libsqlite3.la /usr/local/arm-linux/sqlite-arm-linux/lib
/usr/bin/install -c .libs/libsqlite3.so.
(cd /usr/local/arm-linux/sqlite-arm-linux/lib && rm -f libsqlite3.so.0 && ln -s libsqlite3.so.0.8.6 libsqlite3.so.0)
``````````````````````
````````````````````````
`````````````````````````
/usr/bin/install -c -d /usr/local/arm-linux/sqlite-arm-linux/lib/pkgconfig;
/usr/bin/install -c -m 0644 sqlite3.pc /usr/local/arm-linux/sqlite-arm-linux/lib/pkgconfig;
注明: "# make install" 这一步将会在 /usr/local/arm-linux/sqlite-arm-linux/lib 生成库文件
2 sqlite3嵌入式数据库的ARM-Linux移置详解
# cd lib
# file libsqlite3.so.
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
另外可以生成帮助文档,以便以后查询。
# make doc
好了,这样我们已经编译出了
1.4 在ARM板上运行sqlite
将/usr/local/arm-linux/sqlite-arm-linux/bin/目录下的 sqlite3 文件下载到你的arm板上
Mount –t nfs 192.168.0.121:/home/ban/share /ban
Cp sqlite3 /var
方法很多,你需要根据自己的情况来选择。如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 file
or 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 file
or directory
还是出错,哦,我们没有设置环境变量,
假设我们下在库文件在ARM板上的 /usr/qpe/lib/ 目录下,这里设置环境就像下面:
[root@51Board var]# export LD_LIBRARY_PATH=/usr/qpe/lib:$LD_LIBRARY_PATH
好了这样就可以运行了:
[root@51Board var]# ./sqlite3 zieckey.db
SQLite version
Enter ".help" for instructions
sqlite>