嵌入式SQLite資料庫的構建

來源:互聯網
上載者:User
宿主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環境下和在嵌入式環境下可以操作同一個資料庫。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.