亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > SQLite > 正文

SQLite移植手記

2024-09-07 00:09:58
字體:
來源:轉載
供稿:網友

SQLite實現了大部分SQL92標準的SQL語句,同時支持ACID。還有其它許多特性這里不做深究,因為這在嵌入式領域來說應該是夠用了。

下載:
下載頁面:http://www.sqlite.org/download.html
我使用的還是當前最新版本:sqlite-3.3.7.tar.gz
(寫完的時候已經更新出3.3.8版本了,真快啊……)

安裝:
時間不多,簡單介紹安裝過程:
解壓sqlite到uclinux-dist/user/sqlite/

============ 對uClinux的修改 ============
1. 下載sqlite,解壓到uclinux-dist/user/下
2. 編輯uclinux-dist/user/下的Makefile,增加:

dir_$(CONFIG_USER_SQLITE_SQLITE)             = sqlite

3. uclinux-dist/config/Configure.help中增加:

CONFIG_USER_SQLITE_SQLITE
SQLite Database.

4. uclinux-dist/config/config.in最后增加:

mainmenu_option next_comment
comment 'Database'
bool 'sqlite' CONFIG_USER_SQLITE_SQLITE
endmenu

============ 對SQLite的修改 ============
1. uclinux-dist/user/sqlite/main.mk中:
TCCX修改為:

TCCX = $(TCC) $(OPTS) $(THREADSAFE) $(USLEEP) -I. -I$(TOP)/src $(CFLAGS)

LIBOBJ修改為(一些模塊不需要,比如tcl):

LIBOBJ = alter.o analyze.o attach.o auth.o btree.o build.o
callback.o complete.o date.o delete.o
expr.o func.o hash.o insert.o loadext.o
main.o opcodes.o os.o os_unix.o
pager.o parse.o pragma.o prepare.o printf.o random.o
select.o table.o tokenize.o trigger.o
update.o util.o vacuum.o
vdbe.o vdbeapi.o vdbeaux.o vdbefifo.o vdbemem.o
where.o utf.o legacy.o vtab.o

sqlite3$(EXE)規則部分修改為:

shell.o: $(TOP)/src/shell.c sqlite3.h
$(TCCX) $(READLINE_FLAGS) -c $(TOP)/src/shell.c

sqlite3$(EXE): shell.o libsqlite3.a
$(TCC) $(LDFLAGS) -o $@ shell.o
libsqlite3.a $(LIBREADLINE) $(THREADLIB) $(LDLIBS)

去掉install,增加:

distclean: clean
rm -f config.h

2. 拷貝Makefile.linux-gcc為Makefile,修改如下:

TCC = $(CROSS)gcc
AR = $(CROSS)ar cr
RANLIB = $(CROSS)ranlib
#TCL_FLAGS = -I/home/drh/tcltk/8.4linux
#LIBTCL = /home/drh/tcltk/8.4linux/libtcl8.4g.a -lm -ldl

編譯:
在make menuconfig的user application部分可以看到剛添加的Database –>菜單,進入并選擇SQLite,保存退出后按原先的步驟重新編譯內核即可。如果只需要sqlite的庫,那么make user_only就可以了。
編譯完成后會在user/sqlite目錄下生成庫libsqlite3.a。

測試一下:
編寫一個測試程序sqlitetest.c,代碼如下(來自官方quick start):

#include
#include

static int callback(void *NotUsed, int argc, char **argv, char **azColName){
int i;
for(i=0; i
然后為它寫一個Makefile,大致如下:
UCLINUX_PATH = /home/uClinux-dist
SQLITE_PATH = $(UCLINUX_PATH)/user/sqlite

CROSS = arm-elf-
CPU_CFLAGS = -O3 -Wall -mapcs-32 -mtune=arm7tdmi -fno-builtin -msoft-float -Os
-D__uClinux__ -D__ARM_CPU__
-I$(UCLINUX_PATH)/lib/uClibc/include -I$(UCLINUX_PATH)/linux-2.4.x/include
-I$(SQLITE_PATH)
-D_DEBUG_
CPU_LDFLAGS = -nostartfiles -Wl, -elf2flt -L$(UCLINUX_PATH)/lib/uClibc/lib
CPU_ARFLAGS = r
CPU_LDLIBS = $(UCLINUX_PATH)/lib/uClibc/lib/crt0.o $(UCLINUX_PATH)/lib/uClibc/lib/crti.o
$(UCLINUX_PATH)/lib/uClibc/lib/crtn.o -lc
MY_LDFLAGS = -L$(SQLITE_PATH)
MY_LDLIBS = -lsqlite3

CFLAGS = $(CPU_CFLAGS)
LDFLAGS = $(CPU_LDFLAGS) $(MY_LDFLAGS)
LDLIBS = $(CPU_LDLIBS) $(MY_LDLIBS)

TOPDIR = ./

CC = $(CROSS)gcc

EXEC = sqlitetest
CSRC = sqlitetest.c
OBJS = $(patsubst %.c,%.o, $(CSRC))

all: $(EXEC)

$(OBJS): %.o : %.c
$(CC) $(CFLAGS) -c $
運行make編譯測試程序,生成的程序大小約300KB:
linux:/home/work/sqlite # ll
總用量 688
drwxr-xr-x 2 root root 264 2006-10-09 11:25 .
drwxr-xr-x 4 root root 160 2006-10-09 11:21 ..
-rw------- 1 root root 982 2006-10-09 11:25 Makefile
-rwxr--r-- 1 root root 315584 2006-10-09 11:25 sqlitetest
-rw------- 1 root root 788 2006-10-09 11:21 sqlitetest.c
-rwxr-xr-x 1 root root 396538 2006-10-09 11:25 sqlitetest.gdb
-rw-r--r-- 1 root root 1600 2006-10-09 11:25 sqlitetest.o

接著將測試程序下載到目標板,測試運行結果如下:


# /home/sqlitetest /home/testdb.db "CREATE TABLE my_table(id int, name varchar(20))"      
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美日韩国产精品专区| 欧美福利小视频| 精品五月天久久| 国产精品视频男人的天堂| 亚洲一区二区三区在线免费观看| 91日韩在线视频| 精品视频在线导航| 亚洲美女喷白浆| 亚洲三级av在线| 亚洲国模精品私拍| 国产欧美精品日韩| 久久精品国产99国产精品澳门| 欧美激情2020午夜免费观看| 国产精品久久久久91| 91丨九色丨国产在线| 欧美三级xxx| 成人性生交大片免费观看嘿嘿视频| 久久国产视频网站| 日韩精品免费观看| 搡老女人一区二区三区视频tv| 日韩最新免费不卡| 国产精品美女主播| 欧美日韩在线一区| 视频在线一区二区| 亚洲国产女人aaa毛片在线| 久久影院模特热| 一区二区亚洲欧洲国产日韩| 亚洲精品自拍偷拍| 亚洲色图五月天| 亚洲成av人影院在线观看| 国产美女搞久久| 国产欧美一区二区三区在线| 欧美国产日韩xxxxx| 欧美色视频日本高清在线观看| 亚洲图片制服诱惑| 色综合久久天天综线观看| 另类色图亚洲色图| 久久久久久网站| 日本精品视频在线播放| 高清日韩电视剧大全免费播放在线观看| 精品国产一区二区三区久久狼5月| 狠狠躁夜夜躁人人躁婷婷91| 精品免费在线观看| 亚洲精品在线不卡| 国产91精品视频在线观看| 久久久久久香蕉网| 欧美日韩国产丝袜另类| 日韩精品极品毛片系列视频| 91精品国产91久久久久久| 国产午夜精品免费一区二区三区| 欧美性精品220| 亚洲精品成人久久久| 91中文字幕一区| 亚洲人成电影网| 在线观看日韩视频| 超薄丝袜一区二区| 亚洲国产天堂久久综合| 91po在线观看91精品国产性色| 亚洲天堂一区二区三区| 国产精品黄页免费高清在线观看| 成人黄色av播放免费| 亚洲 日韩 国产第一| 精品久久香蕉国产线看观看gif| 亚洲va久久久噜噜噜久久天堂| 91视频免费网站| 日韩二区三区在线| 国产精品av在线播放| 国产一区二区三区欧美| 日本久久91av| 91精品久久久久久久久青青| 色香阁99久久精品久久久| 国产精品久久久久久久久久新婚| 欧美与黑人午夜性猛交久久久| 成人免费看黄网站| 4444欧美成人kkkk| 亚洲欧美日本伦理| 97精品视频在线播放| 久久久国产91| 日韩欧美中文第一页| 91麻豆国产语对白在线观看| 亚洲精品网站在线播放gif| 欧美午夜激情在线| 亚洲春色另类小说| www日韩欧美| 国产成人亚洲综合| 精品偷拍各种wc美女嘘嘘| www日韩中文字幕在线看| 欧美中文在线观看| 欧美又大又粗又长| 亚洲美女在线视频| 国产精品入口日韩视频大尺度| 日韩日本欧美亚洲| 久久免费成人精品视频| 国产精品va在线播放我和闺蜜| 伊人青青综合网站| 午夜精品一区二区三区在线播放| 亚洲xxxx18| 欧美成人在线免费视频| 日韩av在线免费看| 亚洲人成绝费网站色www| 日韩a**中文字幕| 欧美国产精品va在线观看| 国产成人激情视频| 91国产美女在线观看| 国产精品丝袜久久久久久不卡| 国产91精品久久久久久久| 欧美激情三级免费| 欧美视频精品一区| 亚洲香蕉av在线一区二区三区| 日韩中文字幕在线免费观看| 欧美成人国产va精品日本一级| 日韩在线中文视频| 欧美激情视频在线| 欧美极品在线视频| 日韩一区视频在线| 亚洲美女动态图120秒| 日韩av网址在线观看| 国模视频一区二区三区| 国产精品久久久久久婷婷天堂| 欧美三级欧美成人高清www| 日韩精品福利网站| 国产视频久久久久| 91极品女神在线| 国产精品电影久久久久电影网| 欧美激情免费视频| 中文字幕亚洲一区在线观看| 亚洲免费视频在线观看| 亚洲国产精品成人一区二区| 欧美一级片久久久久久久| 日韩欧美国产视频| 在线午夜精品自拍| 亚洲综合第一页| 亚洲国产日韩欧美在线99| 亚洲国产精品久久精品怡红院| 国产在线拍偷自揄拍精品| 久久久久久尹人网香蕉| 国产精品视频xxx| 欧美壮男野外gaytube| 97精品国产91久久久久久| 日韩精品视频在线免费观看| 亚洲国产成人精品久久| 欧美日韩国产成人高清视频| 国产91av在线| 98精品国产高清在线xxxx天堂| 亚洲成人久久久久| 中文字幕日韩电影| 日韩中文字幕免费视频| 国产精品久久一区| 亚洲精品小视频在线观看| 亚洲国产精久久久久久| 亚洲国产精品视频在线观看| 久久影视电视剧免费网站清宫辞电视| 91性高湖久久久久久久久_久久99| 自拍偷拍免费精品| 亚洲欧美日韩精品久久亚洲区| 中文字幕日韩高清| 国产精品一区久久久| 在线午夜精品自拍| 日韩欧美精品中文字幕| 日韩电影中文字幕一区| 8x拔播拔播x8国产精品| 韩国欧美亚洲国产| 综合av色偷偷网| 中文字幕欧美日韩精品|