移植sqlite-3.5.6到s3c2410上

移植sqlite-3.5.6到s3c2410上


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>

接着,编写一个连接sqlite数据库的程序,在2410上运行


  1. #include<stdio.h>
  2. #include<sqlite3.h>//数据库头文件
  3. intmain(void)
  4. {
  5. sqlite3*db=NULL;
  6. intrc;
  7. rc=sqlite3_open("test.db",&db);//打开指定的数据库文件,如果不存在将创建一个同名的数据库文件
  8. if(rc){
  9. fprintf(stderr,"Can'topendatabase:%s\n",sqlite3_errmsg(db));
  10. sqlite3_close(db);
  11. exit(1);
  12. }
  13. else
  14. printf("opentest.dbsuccessfully!\n");
  15. sqlite3_close(db);//关闭数据库
  16. return0;
  17. }
编译程序: tong@tong-desktop:~/exp$ arm-linux-gcc sqlite_connect.c -o sqlite_connect -lsqlite3 -L/home/tong/sqlite-3.5.6/sqlite-arm/lib -I/home/tong/sqlite-3.5.6/sqlite-arm/include -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! 成功!!!

相关文章

SQLite架构简单,又有Json计算能力,有时会承担Json文件/RES...
使用Python操作内置数据库SQLite以及MySQL数据库。
破解微信数据库密码,用python导出微信聊天记录
(Unity)SQLite 是一个软件库,实现了自给自足的、无服务器...
安卓开发,利用SQLite实现登陆注册功能