嵌入式数据库SQLite移植到S3C2410的方法

以下是本人的工作目录,可根据自己的情况进行调整。

1.交叉编译环境建立:用于交叉编译sqlite

安装cross-2.95.3.tar.bz2交叉编译工具到/usr/local/arm目录下。

解压sqlite-3.3.8到/usr/localsqlite-arm/sqlite-3.3.8,并创建文件夹

cd /usr/localsqlite-arm/sqlite-3.3.8 

mkdir sqlite-arm-linux(此文件夹路径可自定)

2.vi configure进行修改,或者通过gedit来打开此文件

20420行 { (exit 1); exit 1; }; }改为 { (echo 1); echo 1; }; }

20446行 { (exit 1); exit 1; }; }改为 { (echo 1); echo 1; }; }

接下就可以执行./configure --disable-tcl --prefix=/usr/local/sqlite-arm/sqlite-plant/ --host=arm-linux


结果出现了如下错误: 

configure: error: unable to find a compiler for building build tools 
前面检查arm-linux-gcc都通过了,怎么还说没有找到编译器呢?花了点时间看configure的脚本,太复杂了,又结合configure.ac看了一下。原来是要设置config_TARGET_CC和config_BUILD_CC两个环境变量。config_TARGET_CC是交叉编译器,config_BUILD_CC是主机编译器

重来: 
[root@linux sqlite-3.3.4]# export config_BUILD_CC=gcc 
[root@linux sqlite-3.3.4]# export config_TARGET_CC=arm-linux-gcc 
再编译一次,这下就正常了

./configure --disable-tcl --prefix=/usr/local/sqlite-arm/sqlite-plant/ --host=arm-linux

make

make install

然后就可以在

/usr/local/sqlite-arm/sqlite-plant/

目录下面看到三个文件夹,bin lib include,这就是我们需要移植到开发板上的文件最好

库文件已经生成在为了减小执行文件大小可以用strip处理,去掉其中的调试信息。
arm-linux-strip libsqlit3.so.0.8.6
arm-linux-strip sqlite3
移植
需要注意:
拷贝是需要加上 –arf选项,因为libsqlite3.so,libsqlite3.so.0是链接到libsqlite3.so.0.8.6的。
cd /usr/local/sqlite-arm/sqlite-plant/lib
cp –arf libsqlite3.so libsqlite3.so.0. libsqlite3.so.0.8.6 /sqlite-for-plant
cd /usr/local/sqlite-arm/sqlite-plant/bin
cp sqlite3 /sqlite-for-plant
我是将要移植的文件都放到了sqlite-for-plant下面了,这里可根据自己情况。

然后把sqlite3和lib下的库文件移植到ARM上

在ARM板上运行sqlite

将qlite3文件下载到你的arm板上,

方法很多,你需要根据自己的情况来选择。如ftp,nfs,串口等。 好,开始运行

chmod +wx sqlite

[[email protected]]# ./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板上。 再次运行,

[[email protected]]# ./sqlite3 zieckey.db

./sqlite3: error while loading shared libraries: libsqlite3.so.0: cannot open shared object file: No such file or directory

还是出错,哦,我们没有设置环境变量,

我是通过nfs挂载到开发板的,要移植的文件都挂载到/etc下目录sqlite-for-plant里面了

假设我们下在库文件在ARM板上的 /etc下的目录sqlite-for-plant里面,

这里设置环境就像下面:

[[email protected]]# export LD_LIBRARY_PATH=/etc/sqlite-for-plant:$LD_LIBRARY_PATH 好了这样就可以运行了:

[[email protected]]# ./sqlite3

SQLite version 3.3.8

Enter ".help" for instructions

sqlite>

ok ,这就成功了。

你可能感兴趣的:(c,数据库,sqlite,嵌入式,library,编译器)