sqlite数据库的ARM-Linux移置进行过程
准备工作:1.取得一个arm-linux-gcc的编译器。2. sqlite的源码sqlite-3.8.8.tar.gz(本文以)
好了,我们可以开始了。这里设arm-linux-gcc在/arm2410s/gui/tools/usr/local/arm/3.4.1/bin /目录下
解压sqlite-3.8.8.tar.gz到/usr/local/arm-linux/sqlite
# tar zxvfsqlite-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/3.4.1/bin /:$PATH
配置:# ./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.3config.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.0.8.6 /usr/local/arm-linux/sqlite-arm-linux/lib/libsqlite3.so.0.8.6
(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.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
另外可以生成帮助文档,以便以后查询。# 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 3.0.8
Enter ".help" for instructions
sqlite>看见sqlite>提示符号没有?成功了。哈哈!!打个“.help”来看看命令先:-)
sqlite>.help好了。现在sqlite已经在arm-linux下跑了起来。如何,感觉很high吧