|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本章节介绍如何将 sqlite3 移植到 ARM 开发板上,以及在开发板上用 C 语言操作 sqlite3,相关的配套资料在网盘资料“iTOP-i.MX6 开发板资料汇总(不含光盘资料)\08_iTOP-i.MX6 开发板 Linux 系统开发资料\25-QT 系统 Sqlite3 移植和使用”目录。操作源码下载地址:
! U& ~! c( W" |0 ` / H) e) |* {. w, d' ?' S6 m
我们直接下载最新版(3.32.3 版本),我们把下载后的压缩包放在了文档目录底下:+ f; D# J. O5 n) ]/ e
1 n4 u* d7 v/ Y% A( `# H$ r
1 将下载的压缩包 sqlite-autoconf-3320300.tar.gz 解压后创建安装目录 mkdir install,如下图所示:
, S) K6 X0 x h 6 X( e$ S: b# d/ _
2 进 入 解 压 后 的 目 录 , 配 置 编 译 选 项 : ./configure --host=arm-none-linux-gnueabi
# k. n; |- j W--prefix=/home/topeet/iMX6Q/sqlite3/install/ 。
# {# g& U0 [" i5 v! i$ H& W--host: 指定交叉编译工具,和编译 Linux 的编译器一致。+ w. H" I/ H& o( `" m
--prefix:指定安装目录,编译后生成的文件放在此目录,必须是绝对路径 S5 L1 Q, d5 r1 y% e
. j3 T5 Q( r) J
3 执行 make,完成后如下图所示:
0 V5 W9 _3 x* O% p; @( { 5 @3 `" C6 T0 F* H" R
3 执行 make,完成后如下图所示:$ I- W& P" W& G, Z* ?% O
1 D( i6 h9 J- t# O- m1 Z5 G3 y: Z
5 查看 install 目录下是否生成了需要的文件。. x3 c" `) t; S
![]()
- m! D. j: Z8 V# ~6 将 lib 目录下的库文件拷贝到开发板的/lib/目录下,将 bin 目录下的 sqlite3 拷贝到开发板的/bin/目录下。: h# K* v; v! ?( S3 ?1 B" Z$ X; e. B
7 在开发板的终端命令行输入 sqlite3,会进入如下图所示:/ x5 w5 S r4 r4 O3 q U
![]()
8 E P2 f3 r4 ~8 测试:( \$ U# f. `# i2 J7 p7 C9 M4 H! W
1 新建表,输入 create table user (id int,name char,age int); 然后查询表,输入.table,即可查到刚创建的 user 表,如图 83.9 所示: Q+ m* F* D2 k9 \, Q7 R! {
![]()
$ H# E5 I8 r8 N U, l# X1 C2 创建.db 文件
+ ] ^. G1 h: ^2 |输入 sqlite3 /路径/文件名.db 操作完后一定要输入.databases。0 _0 ?- R" X9 V+ Q' e+ _
9 K* F4 R2 x. [$ x
3 编写 C 代码测试:2 J& h( z3 o! v- N: F' d
现在数据库创建表,插入数据:
; v$ P; q& w' \4 O3 T9 lcreate table demo (id int,name char,age int);1 K9 Y0 ?) S2 @4 T$ I6 q
insert into demo values(100,'WangWu',23);
$ y' K4 R. y. ginsert into demo values(101,'Tommm',25);
# z: C) K7 O6 K! J% @* gselect * from demo;
; ~3 v, Q3 r, P' I& R![]()
0 D& a3 z: R- iC 代码如下,具体可参照目录下的 demo 源码, L: C3 T) @8 q
![]()
* j1 ]( ]1 m1 |, R* W输入如下命令交叉编译:arm-none-linux-gnueabi-gcc -I/home/topeet/iMX6Q/sqlite3/install/include/ -L /home/topeet/iMX6Q/sqlite3/install/lib/ -o sql0 H, t5 `, x9 I. e% Y
testSql.c -lsqlite3 -ldl
7 x0 O3 }4 p! M6 ~" _-I 指定了 sqlite3.h 所在路径,
6 ?' z4 E3 }* N, Y# e8 K. C-L 指定 sqlite3 的 lib 库路径。
# E, ]4 l3 ?& J* q+ |4 I# z7 p![]()
, k |1 Z, i3 a1 m* n% [8 {) d" p将生成的可执行文件 sql 拷贝到开发板 root 目录下
' i7 S2 {8 y+ w3 t' C执行后可看到查询结果:6 _& l2 Z6 E: o+ ~$ u
![]()
7 ?* w* T# C9 }+ g& B& g至此 sqlite3 的移植和简单使用介绍结束。迅为IMX6Q开发板
4 W9 {1 o& G8 ^2 U6 H $ M @- y* W1 D+ p
|
|