這裡以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...