sqlite3在mini2440上的移植——基于ubuntu10.04
2015-05-18 16:49
309 查看
sqlite3在mini2440上的移植
ubuntu10.04,arm-linux-gcc-4.3.2
在http://www.sqlite.org/上下载sqlite源代码sqlite-3.6.22.tar.gz
2.创建一个目录build并进入该目录,用于在这个目录中进行交叉编译,如下:
3.在build目录中运行sqlite-3.6.22中的configure脚本生成Makefile文件,如下:
选项host指定的是用arm交叉编译器进行编译
选项prefix后面的路径是到时候编译安装后目标存放的目录,你可以任意设置
4.执行make和make install命令,如下:
出现问题:
arm-linux-ranlib /usr/local/sqlite3/lib/libsqlite3.a
./libtool: line 6619: arm-linux-ranlib: command not found
错误,解决方法如下:
编译和安装完后,在/root/sqlite-3.6.22/build/target目录中会生成三个目标文件夹,分别是:bin、include、 lib,然后分别将bin下的文件下载到开发板的/usr/bin目录中,lib下的所有文件下载到开发板的/usr/lib目录中即可。include目录下是sqlite的C语言API的头文件,编程时会用到。
5.在开发板上测试移植的sqlite数据库。登录开发板的Linux,执行:
sqlite3是一个sqlite的命令行访问程序,demo.db是新建的数据库的名字,必须以db作后缀。然后会看到下面的画面,说明移植成功。
[rootMrFeng]#sqlite3 test.db
SQLite version 3.6.18
Enter “.help” for instructions
Enter SQL statements terminated with a “;”
sqlite> create table film (number,name);
sqlite> insert into film values (1,’aaa’);
sqlite> insert into film values (2,’bbb’);
sqlite> select * from film;
1|aaa
2|bbb
sqlite>.quit
[rootMrFeng]#
蓝色部分为输入。
2、测试程序
这里以SQLite官方站点http://sqlite.org的quick start文档中的测试程序为例对移植到ARM-Linux上的SQLite3进行测试。该程序清单如下:
使用如下命令编译测试程序:
交叉编译时采用arm-linux-gcc -I /……(安装路径)/include -L/……(安装路径)/lib -o target src -lsqlite3
3、在上面新建的数据库目录下测试:
[rootMrFeng]#./test_sqlite test.db “select * from film”
number = 1
name = aaa
number = 2
name = bbb
[rootMrFeng]#
1)
创建数据库文件:
就生成了一个test.db在d盘。
这样同时也SQLite3挂上了这个test.db
2)
用.help可以看看有什么命令
3)可以在这里直接输入SQL语句创建表格用;结束,然后回车就可以看到了
4)看看有创建了多少表
5)看表结构
6)看看目前挂的数据库
7)如果要把查询输出到文件
查询结果就输出到了文件c:/query.txt
把查询结果用屏幕输出
8)把表结构输出,同时索引也会输出
9)退出
转自http://blog.sina.com.cn/s/blog_a4f25cac01012ma8.html
一、开发环境:
Mini2440,linux_2.6.32.2内核,ubuntu10.04,arm-linux-gcc-4.3.2
在http://www.sqlite.org/上下载sqlite源代码sqlite-3.6.22.tar.gz
二、移植步骤
1.解压数据库源文件并进入解压后的目录,如下:[code]tar -zxvf sqlite-3.6.22.tar.gz cd sqlite-3.6.22
2.创建一个目录build并进入该目录,用于在这个目录中进行交叉编译,如下:
[code]mkdir build cd build
3.在build目录中运行sqlite-3.6.22中的configure脚本生成Makefile文件,如下:
[code]../configure --host=arm-linux --prefix=/root/sqlite-3.6.22/build/target
选项host指定的是用arm交叉编译器进行编译
选项prefix后面的路径是到时候编译安装后目标存放的目录,你可以任意设置
4.执行make和make install命令,如下:
[code]make make install
出现问题:
arm-linux-ranlib /usr/local/sqlite3/lib/libsqlite3.a
./libtool: line 6619: arm-linux-ranlib: command not found
错误,解决方法如下:
[code]sudo su //先切换到根用户 export PATH=$PATH:/usr/local/arm/4.3.2/bin //设置根用户的环境变量
编译和安装完后,在/root/sqlite-3.6.22/build/target目录中会生成三个目标文件夹,分别是:bin、include、 lib,然后分别将bin下的文件下载到开发板的/usr/bin目录中,lib下的所有文件下载到开发板的/usr/lib目录中即可。include目录下是sqlite的C语言API的头文件,编程时会用到。
5.在开发板上测试移植的sqlite数据库。登录开发板的Linux,执行:
[code]sqlite3 demo.db
sqlite3是一个sqlite的命令行访问程序,demo.db是新建的数据库的名字,必须以db作后缀。然后会看到下面的画面,说明移植成功。
三、测试
1、新建数据库[rootMrFeng]#sqlite3 test.db
SQLite version 3.6.18
Enter “.help” for instructions
Enter SQL statements terminated with a “;”
sqlite> create table film (number,name);
sqlite> insert into film values (1,’aaa’);
sqlite> insert into film values (2,’bbb’);
sqlite> select * from film;
1|aaa
2|bbb
sqlite>.quit
[rootMrFeng]#
蓝色部分为输入。
2、测试程序
这里以SQLite官方站点http://sqlite.org的quick start文档中的测试程序为例对移植到ARM-Linux上的SQLite3进行测试。该程序清单如下:
[code]//test_sqlite.c #include <stdlib.h> #include <stdio.h> #include <sqlite3.h> static int callback(void *NotUsed, int argc, char **argv, char **azColName) { int i; for(i=0; i<argc;i++) { printf("%s = %s/n", azColName[i], argv [i]); } printf("/n"); return 0; } int main(int argc, char **argv) { sqlite3 *db; char *zErrMsg = 0; int rc; if( argc!=3 ) { fprintf(stderr, "Usage: %s DATABASE SQL-STATEMENT/n", argv[0]); } rc = sqlite3_open(argv[1], &db); if( rc ) { fprintf(stderr, "Can't open database: %s/n", sqlite3_errmsg(db)); sqlite3_close(db); } rc = sqlite3_exec(db, argv[2], callback, 0, &zErrMsg); if( rc!=SQLITE_OK ) { fprintf(stderr, "SQL error: %s/n", zErrMsg); } sqlite3_close(db); return 0; }
使用如下命令编译测试程序:
交叉编译时采用arm-linux-gcc -I /……(安装路径)/include -L/……(安装路径)/lib -o target src -lsqlite3
[code]arm-linux-gcc -o test_sqlite test_sqlite.c -lsqlite3 -L /opt/FriendlyARM/mini2440/sqlite-3.7.3/build/lib/ -I /opt/FriendlyARM/mini2440/sqlite-3.7.3/build/include/
3、在上面新建的数据库目录下测试:
[rootMrFeng]#./test_sqlite test.db “select * from film”
number = 1
name = aaa
number = 2
name = bbb
[rootMrFeng]#
1)
创建数据库文件:
>SQLite3 test.db 回车
就生成了一个test.db在d盘。
这样同时也SQLite3挂上了这个test.db
2)
用.help可以看看有什么命令
>.help 回车即可
3)可以在这里直接输入SQL语句创建表格用;结束,然后回车就可以看到了
4)看看有创建了多少表
>.tables
5)看表结构
>.schema 表名
6)看看目前挂的数据库
>.database
7)如果要把查询输出到文件
>.output 文件名
> 查询语句;
查询结果就输出到了文件c:/query.txt
把查询结果用屏幕输出
>.output stdout
8)把表结构输出,同时索引也会输出
>.dump 表名
9)退出
>.exit 或者.quit
转自http://blog.sina.com.cn/s/blog_a4f25cac01012ma8.html
相关文章推荐
- sqlite3在mini2440上的移植——基于ubuntu10.04
- sqlite3在mini2440上的移植——基于ubuntu10.04
- 10-基于OMAPL138和Ubuntu10.04的tftp开发环境搭建
- 在ubuntu10.04成功移植gdbserver及gdbserver使用介绍(用于CCSV5.2远程调试ARM CORTEX-A8程序)
- 移植linux-2.6.32.2到感知SensorRF2开发平台(基于mini2440)(实录)—— 杨学鹏
- 11-基于OMAPL138和Ubuntu10.04的nfs开发环境搭建
- Mini2440通过nfs启动ubuntu-10.04系统总结
- sqlite3在mini2440上的移植
- 在ubuntu10.04成功移植gdbserver及gdbserver使用介绍(用于CCSV5.2远程调试ARM CORTEX-A8程序)
- ubuntu下基于sqlite3后台的php环境的搭建
- 在我的Ubuntu上移植SQLite3.3.6,编译成静态库
- Linux下Qt 、Sqlite安装及环境变量设置(Ubuntu 10.04)
- 基于s5pv210嵌入式linux系统sqlite3数据库移植
- mini2440基于qtopia2.2的电子词典ZBEDIC的移植过程
- 基于Ubuntu10.04平台安装nagios
- Opencv-2.0.0的ARM移植和使用(Ubuntu10.04 / OK6410开发板 / linux3.01)
- 基于ubuntu-2.6.35内核的SDIO-WiFi驱动移植
- 基于FS4412嵌入式系统移植(7) sqlite3交叉编译与移植
- 基于s5pv210嵌入式linux系统sqlite3数据库移植
- 基于s5pv210嵌入式linux系统sqlite3数据库移植