a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 103|回复: 0

[综合辅导] linux认证:ucLinux下sqlite数据库移植全攻略(4)

[复制链接]
发表于 2012-8-4 12:07:07 | 显示全部楼层 |阅读模式
linux认证:ucLinux下sqlite数据库移植全攻略(4)
5 H) S5 Y, a) p8 x  r- F3、函数do_meta_command(。。.)4 s* T( X8 s- H2 j8 ?: O% }- n
找到类似这样的一句:
. |9 f+ U( Z/ R/ q0 xsqlite_exec(p-》db, “PRAGMA database_list; ”, callback, &data, &zErrMsg);1 U7 l" Y# A3 A
在它的前面有一句
# L; w# Y/ p1 p& D' x, Jmemcpy(&data, p, sizeof(data));
& K( p9 I( o! d% m& _: k现在在memcpy下面增加一行
% l% t5 ?! v) ]4 x; Odata.cnt = 0;
! I" K/ @% r4 \1 o7 Q即将结构中cnt的值赋为0 ;
$ H( q4 t* L1 S. e( g* I7 z现在代码会被修改成类似:
1 |; W; A8 S% S" B2 @open_db(p);
. B$ q2 j; ~: q* r- `memcpy(&data, p, sizeof(data));
5 x$ T5 z8 k) o3 W0 @% sdata.cnt = 0;! s% Y3 L1 ]: i9 F3 O* Y# f* [2 @7 U
再继续。
. E% {7 W4 n& g( M/ O找到类似这样的一句:3 m" q7 o$ N+ J* V0 k- C, O: V9 M
strcmp(azArg[1],“stdout”)==0
1 E* B/ L8 P$ _' v7 |& Z在它的下面的括号中:
6 [8 H! ~6 ]$ Z8 i2 T! ^将 strcpy(p-》outfile,“stdout”);
) i& Z; j* h  V4 j- S+ a6 n8 X用 p-》outfilep = “stdout”;1 ]$ a3 f: Q2 g- L2 {' D
来替换。
0 r7 p0 [5 ^% y: b再在它下面的5-6行处* l0 `0 n9 y6 o8 k8 o' O
将:2 U7 b/ p$ r+ r3 h$ L5 t1 ]
strcpy(p-》outfile,azArg[1]);
1 g% V3 |! s) P8 Q用:2 ^- g6 i4 a" |* A; E, O5 v; K8 u
strcpy(outfilename,azArg[1]);& F; r) P- Y* x7 P5 y+ y5 h
p-》outfilep = outfilename;( u' O* y1 X# R: k1 C- k
替换。
0 [5 K* r" {7 }  O' j) _/ E再继续,找到类似这样的一句:; F; {/ Y/ `) z- l0 w- V
fprintf(p-》out,“%9.9s: %s\n”,“output”,
" p( c+ Z) I+ N3 C0 A将:2 N4 l& }' i9 |2 B9 y, ~% k
fprintf(p-》out,“%9.9s: %s\n”,“output”, strlen(p-》outfile) ? p-》outfile : “stdout”);
9 {( v- R! j  y用:. y. |1 d7 b* o2 C0 t& o# g
fprintf(p-》out,“%9.9s: %s\n”,“output”, p-》outfilep && strlen(p-》outfilep) ? p-》outfilep : “stdout”);
; s, I% W' s" U: R, ]9 u5 K% i1 l$ c% h替换。6 x( h, [! c! u/ p* R: P. D% V
完成修改。5 y5 S$ v2 p  C& @. C; `) B4 t
上面的所有的对sqlite的修改完成后,你就可以make dep;make lib_only;make user_only;make romfs;make image了。
& ~) n! b" D+ ^+ F' H+ Y如果你对sqlite 的修改,在make user_only过程中出现错误的话,你可以忽略make dep;make lib_only命令,直接再次进行make user_only;make romfs;make image;就可以了,而不用重复make dep;make lib_only。
! o/ V3 T; T3 `, f! N, ^$ z6 _% b0 c( bmake image会帮你生成romfs文件系统。现在在uClinux-dist/images下面就有编译生成的romfs文件系统了。这个就是我们需要的包含有sqlite的romfs了。
- d2 x. M7 R* W) _: ^在上面的过程中,你可以不用在“make image”后再去“make”生成kernel内核,因为你只需要生成romfs就可以了,它里面已经有sqlite了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-4 18:10 , Processed in 0.467054 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表