sqlite3在mini2440上的移植
2011-05-11 09:41
429 查看
一
、
开发环境:
Mini2440
,
linux-2.6.32.2
内核,
ubuntu9.10
,
arm-linux-gcc-4.3.2
在
http://www.sqlite.org/ 上下载
sqlite
源代
码
二、移植步骤
1.
解压数据库源文件并进入解压后的目录,如下:
tar -zxvf sqlite-3.6.22.tar.gz
cd sqlite-3.6.22
2.
创建一个目录
build
并进入该目录,用于在这个目录中进行交叉编译,如下:
mkdir build
cd build
3.
在
build
目录中运行
sqlite-3.6.22
中的
configure
脚本生成
Makefile
文件,如下:
../configure --host=arm-linux --prefix=/root/sqlite-3.6.22/build/target
选项
host
指定的是用
arm
交叉编译器进行编译
选项
prefix
后面的路径是到时候编译安装后目标存放的目录,你可以任意设置
4.
执行
make
和
make install
命令,如下:
make
如果出现arm-none-linux-gnueabi-gcc: 3.7.6.2": No such file or directory
<command-line>: warning: missing terminating " character
make: *** [sqlite3.lo] 错误 1
则修改makefile中的
-DPACKAGE_STRING=/"sqlite 3.7.6.2/" 把sqlite和3.7.6.2中间的空格去掉
make install
编译和安装完后,在
/root/sqlite-3.6.22/build/target
目录中会生成三个目标文件夹,分别是:
bin
、
include
、
lib
,然后分别将
bin
下的文件下载到开发板的
/usr/bin
目录中,
lib
下的所有文件下载到开发板的
/usr/lib
目录中即可。
include
目录下是
sqlite
的
C
语言
API
的头文件,编程时会用到。
5.
在开发板上测试移植的
sqlite
数据库。登录开发板的
Linux
,执行:
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
进行测试。该程序清单如下:
//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
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
、
开发环境:
Mini2440
,
linux-2.6.32.2
内核,
ubuntu9.10
,
arm-linux-gcc-4.3.2
在
http://www.sqlite.org/ 上下载
sqlite
源代
码
二、移植步骤
1.
解压数据库源文件并进入解压后的目录,如下:
tar -zxvf sqlite-3.6.22.tar.gz
cd sqlite-3.6.22
2.
创建一个目录
build
并进入该目录,用于在这个目录中进行交叉编译,如下:
mkdir build
cd build
3.
在
build
目录中运行
sqlite-3.6.22
中的
configure
脚本生成
Makefile
文件,如下:
../configure --host=arm-linux --prefix=/root/sqlite-3.6.22/build/target
选项
host
指定的是用
arm
交叉编译器进行编译
选项
prefix
后面的路径是到时候编译安装后目标存放的目录,你可以任意设置
4.
执行
make
和
make install
命令,如下:
make
如果出现arm-none-linux-gnueabi-gcc: 3.7.6.2": No such file or directory
<command-line>: warning: missing terminating " character
make: *** [sqlite3.lo] 错误 1
则修改makefile中的
-DPACKAGE_STRING=/"sqlite 3.7.6.2/" 把sqlite和3.7.6.2中间的空格去掉
make install
编译和安装完后,在
/root/sqlite-3.6.22/build/target
目录中会生成三个目标文件夹,分别是:
bin
、
include
、
lib
,然后分别将
bin
下的文件下载到开发板的
/usr/bin
目录中,
lib
下的所有文件下载到开发板的
/usr/lib
目录中即可。
include
目录下是
sqlite
的
C
语言
API
的头文件,编程时会用到。
5.
在开发板上测试移植的
sqlite
数据库。登录开发板的
Linux
,执行:
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
进行测试。该程序清单如下:
//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
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
相关文章推荐
- mini2440移植sqlite
- mini2440上移植sqlite3.7.6.2
- 在mini2440上的移植sqlite3(成功)
- sqlite3在mini2440上的移植——基于ubuntu10.04
- sqlite移植到mini2440
- sqlite3在mini2440上的移植——基于ubuntu10.04
- sqlite3在mini2440上的移植——基于ubuntu10.04
- sqlite3在mini2440上的移植
- 校园网锐捷Linux版的mystar移植到mini2440开发板上
- Kernel panic - not syncing: Attempted to kill init!(移植linux2.6.29.4进友善mini2440开发板时遇到)
- U-boot移植1:建立mini2440工程环境
- 移植qt4.8.1到mini2440
- linux2.6.32.2 mini2440平台移植-- 配置 USB 外设、SD卡移植
- u-boot-2009.11在MINI2440上的移植 LCD驱动
- linux-2.6.32在mini2440开发板上移植
- Linux-2.6.32.2内核在mini2440上的移植----LCD驱动移植
- sqlite3数据库的移植
- 【引用】Linux-2.6.32.2内核在mini2440上的移植(十)---配置USB外设
- 交叉编译SDL (移植到mini2440)
- 在我的Ubuntu上移植SQLite3.3.6,编译成静态库