Home > Database > Mysql Tutorial > S3C2410下嵌入式数据库SQLite的移植

S3C2410下嵌入式数据库SQLite的移植

WBOY
Release: 2016-06-07 16:59:42
Original
1127 people have browsed it

对SQLite-3.3.8(或者SQLite3.3.12)进行交叉编译,并移植到ARMS3C2410的过程:要将SQLite3.3.8(或者SQLite-3.3.12)移植到ARM2

对SQLite-3.3.8(或者SQLite3.3.12)进行交叉编译,并移植到ARMS3C2410的过程:

要将SQLite3.3.8(或者SQLite-3.3.12)移植到ARM2410开发板上,除了要有底层操作系统的支持外,还必须要有相应的交叉编译工具链。由于ARM2410开发板采用的是ARM-Linux作为底层操作系统,因此需要首先安装ARM-Linux工具链。

1.交叉编译环境建立:

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

解压sqlite-3.3.8到/home/sqlite-3.3.8,并创建文件夹

cd /home/sqlite-3.3.8

mkdir sqlite-arm-linux

2、修改/home/sqlite-3.3.8目录下的configure文件的部分内容

这样可以让configure不去检查你的交叉编译环境,否则会出现如下同样的错误

checking for /usr/include/readline.h... configure: error: cannot check for file existence when cross compiling,,将不能生成Makefile文件.

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

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

cd /home/sqlite-3.3.8/sqlite-arm-linux

../configure --disable-tcl --prefix=/home/sqlite-arm-linux/ --host=arm-linux

生成了Makefile文件,这些将在make时用到.

3、将Makefile文件中如下语句

BCC = arm-linux-gcc -g -O2

改成:

BCC = gcc -g -O2

4、设置交叉编译环境

export PATH=/usr/arm-linux/arm/2.95.3/arm-linux/bin:$PATH

设置config_TARGET_CC和config_BUILD_CC两个环境变量。config_TARGET_CC是交叉编译器,config_BUILD_CC是主机编译器:

export config_BUILD_CC=gcc

export config_TARGET_CC=arm-linux-gcc

5、编译并安装

make && make install

这里如果不出意外,将不会出现错误,那么库文件已经生成在

/home/sqlite-3.3.8/sqlite-arm-linux/lib目录下,

库文件已经生成在为了减小执行文件大小可以用strip处理,去掉其中的调试信息。

arm-linux-strip libsqlit3.so.0.8.6

file sqlite3

sqlite3: ELF 32-bit LSB executable, ARM, version 1 (ARM), for GNU/Linux 2.0.0, dynamically linked (uses shared libs), not stripped

由此可知,此时生成的sqlite文件是还未strip过的。执行命令arm-linux-strip, 去掉其中的调试信息,这样文件将减少很多。(这一步不知道为什么我实现不了,但是不影响软件使用)

arm-linux-strip sqlite3

再次用file命令查看sqlite3的信息:

file sqlite3

sqlite3: ELF 32-bit LSB executable, ARM, version 1 (ARM), for GNU/Linux 2.0.0, dynamically linked (uses shared libs), stripped

这就是在开发板上可以直接运行的可执行文件。

6、移植

需要注意:

拷贝是需要加上 –arf选项,因为libsqlite3.so,libsqlite3.so.0是链接到libsqlite3.so.0.8.6的。

cd /home/sqlite-3.3.8/sqlite-arm-linux/lib

cp –arf libsqlite3.so libsqlite3.so.0. libsqlite3.so.0.8.6 /usr/qt-sqlite/lib

cd /home/sqlite-3.3.8/bin

cp     sqlite3 /usr/qt-sqlite

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

7、在ARM板上运行sqlite

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

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

chmod +wx sqlite

[root@]# ./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@]# ./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@]# export LD_LIBRARY_PATH=/usr/qpe/lib:$LD_LIBRARY_PATH 好了这样就可以运行了:

[root@]# ./sqlite3

SQLite version 3.3.8

Enter ".help" for instructions

sqlite>

看见

sqlite>

提示符号没有?成功了。哈哈!!

打个“.help”来看看命令先:-)

sqlite>.help

好了。现在sqlite已经在arm-linux下跑了起来。如何,感觉很high吧。

linux

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template