BOA+PHP+SQLite之SQLite
欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入 SQLite 1第一种办法pc机上要安装交叉编译环境(我安装的是arm-linux-gcc 3.4.1) 把sqlite-3.5.6.tar.gz解压#tar -vzxf sqlite-3.5.6.tar.gz进入sqlite-3.5.6目录#cd sqlite-3.5.6创建sqlite-arm目
欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入
SQLite 第一种办法pc机上要安装交叉编译环境(我安装的是arm-linux-gcc 3.4.1)
把sqlite-3.5.6.tar.gz解压#tar -vzxf sqlite-3.5.6.tar.gz进入sqlite-3.5.6目录#cd sqlite-3.5.6创建sqlite-arm目录,并进入该目录#mkdir sqlite-3.5.6 #cd sqlite-arm
接着输入以下命令:#……/configure ――prefix=/home/tong/sqlite-3.5.6/sqlite-arm ――disable-tcl ――host=arm-linux configure:是软件的组态设置文件,产生对应平台的Makefile文件,――prefix:表示产生的文件的存放目录
接着进行编译并进行安装#make \\根据Makefile的内容 编译出符合平台的可执行文件#make install \\安装编译成功的软件
执行完以上命令就会在/home/tong/sqlite-3.5.6/sqlite-arm/目录下产生:bin,include,lib等
可以分别使用如下命令把动态库文件的调试信息给剥离,减少文件所占有的空间#arm-linux-strip libsqlite3.so.0.8.6 #arm-linux-strip sqlite3
把bin目录下的sqlite3文件和lib目录下所有的文件都复制到新创建的目录sqlite,然后把sqlite整个文件夹烧到板上(我的存放的位置是/mnt/yaffs/,由于lib目录的libsqlite3.so和libsqlte3.so.0是libsqlite3.so.0.8.6的软连接文件,所以复制不了,可以先去不管它)
设置环境变量[/mnt/yaffs/sqlite]export LD_LIBRARY_PATH=/mnt/yaffs/sqlite/:$LD_LIBRARY_PATH [/mnt/yaffs/sqlite]export PATH=/mnt/yaffs/sqlite/:$PATH
接下来建立软连接[/mnt/yaffs/sqlite]ln -s libsqlite3.so.0.8.6 libsqlite3.so.0 [/mnt/yaffs/sqlite]ln -s libsqlite3.so.0.8.6 libsqlite3.so
这样,移植就算完成了[/mnt/yaffs/sqlite]sqlite3 test.db出现如下内容,表示成功SQLite version 3.5.6 Enter ".help" for instructions sqlite>在>后输入一个; test.db方可创建成功接着,编写一个连接sqlite数据库的程序,在2410上运行
view plainprint?
#include
int main( void )
{ sqlite3 *db=NULL;int rc;rc = sqlite3_open("test.db", &db); //打开指定的数据库文件,如果不存在将创建一个同名的数据库文件if( rc ){ fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));sqlite3_close(db);exit(1);} else printf("open test.db successfully!\n");
sqlite3_close(db); //关闭数据库return 0;}
#include
编译程序:tong@tong-desktop:~/exp$arm-linux-gcc -L /sqlite-3.3.8 -I /sqlite-3.3.8 -o test1 test1.c -lsqlite3
-lsqlite3 -L/home/tong/sqlite-3.5.6/sqlite-arm/lib:表示在/home/tong/sqlite-3.5.6/sqlite-arm/lib目录中寻找sqlite3的库文件
-I/home/tong/sqlite-3.5.6/sqlite-arm/include:表示在/home/tong/sqlite-3.5.6/sqlite-arm/include目录中寻找头文件
查看产生的文件的属性:tong@tong-desktop:~/exp$ file sqlite_connect sqlite_connect: ELF 32-bit LSB executable, arm, version 1, dynamically linked (uses shared libs), for GNU/Linux 2.4.3, not stripped
把sqlite_connect文件烧到板上,运行:[/mnt/yaffs/test]./sqlite_connect open test.db successfully!
成功!!!
第二种办法在arm-Linux平台上移植SQLite
(陈云川 200620603001 ybc2084@163.com 四川成都)
摘要:本文首先对嵌入式数据库SQLite做了简单的介绍,对移植所采用的软硬件平台作了简单的说明。然后以SQLite3为蓝本对移植过程中的细节作了详细的说明,并对移植后的SQLite3数据库进行了测试。测试结果表明,本文所采取的移植方式是有效的。
关键字:arm-Linux、嵌入式、SQLite
Port SQLite to arm-Linux Platform(Yun Chuan Chen, 200620603001, ybc2084@163.com, Chengdu Sichuan)
Abstract: This paper first give a brief introduction to SQLite database and the hardware and software platform to port. Then demonstrate SQLite3‘s porting process to ARM-Linux in detail and test the ported SQLite3. The testing result states that the porting method this paper proposed is effective. Keywords: arm-Linux、embedded、SQLite
1、引言本文将简要介绍如何在arm-Linux平台上移植SQLite嵌入式数据库。SQLite是一个采用C语言开发的嵌入式数据库引擎。SQLite的最新版本是3.3.8,在不至于引起混淆的情况下,本文也将其简称为SQLite3.数 据库的目标是 实现对数据的存储、检索等功能。传统的数据库产品除提供了基本的查询、添加、删除等功能外,也提供了很多高级特性,如触发器、存储过程、数据备份恢复等。 但实际上用到这些高级功能的时候并不多,应用中频繁用到的还是数据库的基本功能。于是,在一些特殊的应用场合,传统的数据库就显得过于臃肿了。在这种情况 下,嵌入式数据库开始崭露头角。嵌入式数据库是一种具备了基本数据库特性的数据文件,它与传统数据库的区别是:嵌入式数据库采用程序方式直接驱动,而传统 数据库则采用引擎响应方式驱动。嵌入式数据库的体积通常都很小,这使得嵌入式数据库常常应用在移动设备上。由于性能卓越,所以在高性能的应用上也经常见到 嵌入式数据库的身影。
SQLite是一种嵌入式数据库。SQLite的目标是尽量简单,因此它抛弃了传统企业级数据库的种种复杂特性,只实现那 些对于数据库而言非常必要的功能。尽管简单性是SQLite追求的首要目标,但是其功能和性能都非常出色。它具有这样一些特点[1]: 支持ACID事务(ACID是Atomic、Consistent、Isolated、Durable的缩写);零配置,不需要任何管理性的配置过程;实 现了大部分SQL92标准;所有数据存放在一个单独的文件之中,支持的文件大小最高可达2TB;数据库可以在不同字节序的机器之间共享;体积小,在去掉可 选功能的情况下,代码体积小于150KB,即使加入所有可选功能,代码大小也不超过250KB;系统开销小,检索效率高,执行常规数据库操作时速度比客户 /服务器类型的数据库快;简单易用的API接口;可以和Tcl、Python、C/C++、Java、Ruby、Lua、Perl、PHP等多种语言绑 定;自包含,不依赖于外部支持;良好注释的代码;代码测试覆盖率达95%以上;开放源码,可以用于任何合法用途。由于这样一些杰出的优点,SQLite获 得了由Google与O‘Reilly举办的2005 Open Source Award!
由于SQLite具有功能强大、接口简单、速度快、占用空间小这样一些特殊的优点,因此特别适合于应用在嵌入式环境中。SQLite在手机、PDA、机顶盒等设备上已获得了广泛应用。本文将说明如何在arm-Linux内核的基础上移植SQLite3. 2、软硬件平台本 文中采用的硬件平台为Sitsang嵌入式评估板。Sitsang评估板的核心是PXA255嵌入式处理器,PXA255是一款基于Intel XScale微架构的高性能、低功耗嵌入式处理器。Sitsang评估板上配备了Flash存储器、LCD、触摸屏、USB接口、以太网接口、全功能串口 (FFUART)、蓝牙串口(BTUART)、音频接口等诸多硬件资源。
底层软件系统是以ARM-Linux内核为基础的。Sitsang评估板使用的arm-Linux是在linux-2.4.19内核上打了patch-2.4.19-sitsang2补丁后编译而成。
[1] [2]
推荐阅读
-
BOA+PHP+SQLite之SQLite
-
深入理解PHP 数组之count 函数_php实例
-
search.taobao.com php数组函数序列之array_search- 按元素值返回键名
-
ASP编程入门进阶(十八):FSO组件之文件操作(中)
-
世界十大邪物 中空之物不要碰,日本传统人偶看着就很诡异
-
DBCA错误之ORA-03113end-of-file on communication channe
-
自考《数据库系统原理》(2)之数据库设计和ER模型
-
西游群英传之兔西西表情欣赏
-
微信小程序之自动生成条形码和二维码
-
php数组函数序列之array_sum() - 计算数组元素值之和_PHP教程