宿主PC機上安裝SQLite資料庫
1.下載SQLite資料庫的源碼並解壓
這裡使用的SQLite資料庫的版本是sqlite-3.5.9,是:http://sqlite.org/sqlite-3.5.9.tar.gz,將下載到的sqlite-3.5.9.tar.gz壓縮包拷貝到fedora7 Linux作業系統的/root目錄下,然後在終端進入root並解壓,操作命令如下:
[root@localhost /]# cd /root
[root@localhost root]#tar zxvf sqlite-3.5.9.tar.gz
這會在/root目錄中產生一個sqlite-3.5.9的目錄。
2. 產生SQLite的設定檔,編譯和安裝SQLite
接著進入sqlite-3.5.9目錄,並採用預設配置產生Makefile檔案,然後編譯、安裝SQLite,操作命令如下:
[root@localhost root]#cd sqlite-3.5.9;
[root@localhost sqlite-3.5.9]#./configure ;
[root@localhost sqlite-3.5.9]#Make ;
[root@localhost sqlite-3.5.9]#make install ;
這會在fedora7 Linux作業系統的/usr/local(這是預設的安裝路徑)產生bin、include和lib三個目錄,其中bin目錄中的檔案是SQLite的可執行檔sqlite3;include目錄中的檔案是libsqlite3.a、libsqlite3.la、libsqlite3.so、libsqlite3.so.0和libsqlite3.so.0.8.6;lib目錄中的檔案是sqlite3.h,它是SQLite的標頭檔。
3. 測試SQLite資料庫
因為上面是按預設路徑/usr/local安裝SQLite的,此時只要在終端直接輸入sqlite3,出現如下輸出資訊表示SQLite資料庫安裝成功。
[root@localhost sqlite-3.5.9]#sqlite3
SQLite version 3.5.9
Enter".help" for instructions
sqlite>
安裝交叉編譯環境下的SQLite資料庫
1. 下載SQLite資料庫的源碼並解壓
這裡使用的SQLite資料庫的版本是sqlite-3.5.9,是:http://sqlite.org/sqlite-3.5.9.tar.gz,將下載到的sqlite-3.5.9.tar.gz縮包拷貝到fedora7 Linux作業系統的/usr/local/arm目錄下,然後在終端進入/usr/local/arm並解壓,操作命令如下:
[root@localhost /]#cd /usr/local/arm ;
[root@localhost arm]#tar zxvf sqlite-3.5.9.tar.gz;
這會在/usr/local/arm目錄中產生一個sqlite-3.5.9的目錄。
1. 產生SQLite的設定檔,編譯和安裝SQLite
與在PC環境下編譯SQLite3不同,不能通過sqlite-3.5.9目錄下的configure指令碼來產生Makefile檔案。而是必須手動修改Makefile檔案。在sqlite-3.5.9目錄下有一個Makefile範例檔案為Makefile.linux-gcc,修改這個檔案並重新命名為Makefile,操作命令如下:
[root@localhost arm]#cd sqlite-3.5.9; //進入sqlite-3.5.9目錄
[root@localhost sqlite-3.5.9]#cp Makefile.linux-gccMakefile ; //複製一個Makefile檔案
[root@localhost sqlite-3.5.9]#gedit Makefile ; //修改Makefile檔案
對Makefile的要作兩個方面的修改,先將編譯器和歸檔工具等換成交叉工具鏈中的對應工具,比如將gcc換成arm-linux-gcc;接著去掉與TCL相關的編譯選項,因為在預設的情況下,會將編譯SQLite3的Tcl語言綁定,但是把SQLite3移植到ARM-Linux交叉編譯環境時並不需要,必須把兩個和TCL有關的內容注釋掉,具體修改如下:
把第17行的代碼“TOP = ../sqlite”改為“TOP = .”;
把第73行的代碼“TCC = gcc -O6”改為“TCC =arm-linux-gcc -O6”;
把第81行的代碼“AR = ar cr”改為“AR = arm-linux-ar cr”;
把第83行的代碼“RANLIB = ranlib”改為“RANLIB = arm-linux-ranlib”;
把第86行的待碼“MKSHLIB = gcc -shared”改為“MKSHLIB = arm-linux-gcc-shared”;
把第96行的代碼“TCL_FLAGS = -I/home/drh/tcltk/8.4linux”注釋掉;
把第103行的代碼“LIBTCL = /home/drh/tcltk/8.4linux/libtcl8.4g.a -lm –ldl”注釋掉;
然後儲存退出,接修改main.mk檔案,操作命令如下:
[root@localhost sqlite-3.5.9]#gedit main.mk //修改main.mk檔案
把第63行的代碼“select.o table.otclsqlite.o tokenize.o trigger.o \”修改為“select.o table.o tokenize.otrigger.o \”;
然後儲存退出,至此完成了所有檔案的修改工作,接下來進行編譯SQLite,操作命令如下:
[root@localhost sqlite-3.5.9]#make ;
編譯完成後,會在當前的sqlite-3.5.9目錄下產生libsqlite3.a、sqlite3.h和sqlite3三個檔案,它們分別是SQLite的庫函數檔案、標頭檔和應用程式檔案。然後將sqlite3應用程式檔案拷貝到fedora7 Linux作業系統下的/nfs/bin目錄下,這樣就可以在嵌入式開發平台(比如超級終端)上使用SQLite了。
3. 測試SQLite資料庫
把攜帶型衛星通訊地球站監控系統的目標板和PC機串連起來,在PC機上開啟超級終端,啟動目標版的作業系統,然後在超級終端輸入sqlite3,出現如下輸出資訊表示SQLite資料庫安裝成功。
[root@localhost /]# sqlite3
SQLite version 3.5.9
Enter ".help" for instructions
sqlite>
儘管在嵌入式交叉編譯環境下和在PC機環境下安裝SQLite資料庫的方法不一樣,但是在兩種環境下產生資料庫檔案的儲存格式是相同的,對資料庫的操作也是一樣的,並且在PC環境下和在嵌入式環境下可以操作同一個資料庫。