加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

移植sqlite-3.5.6到s3c2410上

发布时间:2020-12-12 20:23:06 所属栏目:百科 来源:网络整理
导读:移植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-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上运行


[cpp] view plain copy
  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:%sn",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! 成功!!!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读