# else
# define INTPTR_TYPE long long
# endif
在上面的代码前加上一句
# define SQLITE_PTR_SZ 4
这样后面的“typedef INTPTR_TYPE ptr;”就是定义的“int”类型,而不是“long long”。
4、使用configure进行一些配置。修改sqlite目录下的configure,让configure不去检查交叉编译环境。由于篇幅有限不再详述。
5、修改Makefile文件。将代码行BCC=arm-linux-gcc-g-O2改成BCC=gcc-g-O2。另外,一般是以静态链接的形式将sqlite放到ARM-Linux的硬件板上运行的,所以继续修改Makefile,找到标记为sqlite:的代码段,将其中的libsqlite.la改成.libs/libsqlite.a。做完上述修改,用make生成sqlite、libsqlite.a、libsqlite.so。为了减小执行文件大小可以用strip处理,去掉其中的调试信息。
6、在ARM板上运行sqlite。将sqlite拷贝到ARM板上,方法很多,需要根据具体的情况来选择。如ftp、cm-dftp、wget等。将sqlite下载到ARM板的/tmp目录,因为此目录是可写的。修改权限并运行:
chmod wx sqlite
./sqlite test.sqlite
会出现
sqlite>
如果一切正常,现在sqlite已经在ARM-Linux下跑了起来,然后就可以基于此进行下一步的应用开发了。
6 结语
嵌入式数据库SQLite和Berkeley DB,在体积上、功能上、运行速度及难易程度都存在着或多或少的异同。但它们都有能够充分适应硬件的能力,能很好地适应嵌入式系统的需要。就笔者来看,SQLite功能虽不及Berkeley DB强大,但它的设计思想是小型、快速和最小化的管理。这就使得SQLite在大小和功能之间找到了一个理想的平衡点,而且完全的开源代码使其可以称得上是理想的“嵌入式数据库”。当然在具体的嵌入式应用中可以根据具体情况选择应用。
参考文献:
1、http://www.sqlite.org , SQLite的官方主页
2、http://www.sleepycat.com ,Berkeley DB的官方主页
3、Michael Owens. Embedding an SQL Database with Sqlite. Linux Journal,2003 06 01
4、薛启康.Linux环境下的数据库.中国计算机报,2001总期号:1009
5、张孝.嵌入式移动数据库的现状及发展[J/OL]. http://www.basesoft.com
上一页 [1] [2]
