在arm上測試sqlite3

2021-04-19 04:24:47 字數 2054 閱讀 6999

這裡以sqlite官方站點http://sqlite.org

的quick start文件中的測試程式為例對移植到arm-linux上的sqlite3進行測試。該程式清單如下:

1 #include

2 #include <sqlite3.h>

3 4 static int

5 callback(void *notused, int argc, char **argv, char **azcolname)

6 12  printf("/n");

13  return 0;

14 }

15 16 int

17 main(int argc, char **argv)

18 27  rc =sqlite3_open(argv[1], &db);

28  if (rc)

33  rc =sqlite3_exec(db, argv[2], callback, 0, &zerrmsg);

34  if (rc !=sqlite_ok)

38sqlite3_close(db);

39  return 0;

40 }

將此源程式儲存為test.c,將test.c儲存在bld目錄下,然後,通過如下命令編譯該程式:

arm-linux-gcc -o test test.c -l .libs -lsqlite3 -static

測試的話可以參看網頁:http://www.sqlite.com.cn/mysqlite/6/349.html

面是測試test程式的完整過程,需要注意的是由於命令較長,因此每乙個命令都分成了多行輸入,這樣看起來要清楚一些:

[root@sitsang2 root]$./test xyz.db "create table

> tbl0(name varchar(10), number **allint);"

[root@sitsang2 root]$./test xyz.db "insert into

> tbl0 values('cyc', 1);"

[root@sitsang2 root]$./test xyz.db "insert into

> tbl0 values('dzy', 2);"

[root@sitsang2 root]$./test xyz.db "select *

> from tbl0;"

name = cyc

number = 1

name = dzy

number = 2

解釋一下上面所用的測試命令:第一條命令在xyz.db這個資料庫檔案中建立了乙個tbl0表,表中包含兩個字段,欄位name是乙個變長字串,欄位number的型別為**allint;第二條命令向資料庫的tbl0表中插入了一條記錄(『cyc』,1);第三條命令向資料庫的tbl0表中插入了一條記錄(『dzy』,2);第四條命令則是查詢表tbl0中的所有內容,與預期的一樣,這條命令列印除了資料庫中的兩條剛插入的記錄。由此可以得出結論,這幾條命令確實都已經按照預期的目標工作了。

同時,在向資料庫中插入上面所示的資料之後,可以看到資料庫檔案xyz.db大小已經發生了變化:

[root@sitsang2 root]$ll -h xyz.db

-rw-r--r--    1 root     root        2.0k jan 1 00:18 xyz.db

此時資料庫檔案xyz.db的大小為2k。自此,sqlite3資料庫在sitsang評估板上移植完成。測試結果表明資料庫能夠正常工作。

sqlite3 在arm板上的編譯

對於乙個 使用了資料庫的程式,編譯會與普通程式不同,首先編譯會用到sqlite3 解壓編譯之後的buid資料夾下的 檔案庫。編譯 arm linux gnueabif gcc o test test.c test.h i home milan dufan test mx6 build include...

編譯在arm板上使用的sqlite3的靜動態庫

採用的是sqlite autoconf 3080002.tar.gz 解壓 tar xvf sqlite autoconf 3080002.tar.gz 進入 cd sqlite autoconf 3080002 採用的是 arm none linux gnueabi gcc g 編譯。config...

編譯在arm板上使用的sqlite3的靜動態庫

採用的是sqlite autoconf 3080002.tar.gz 解壓 tar xvf sqlite autoconf 3080002.tar.gz 進入 cd sqlite autoconf 3080002 採用的是 arm none linux gnueabi gcc g 編譯。config...