當前位置:首頁 » 編程軟體 » sqlite編譯安裝

sqlite編譯安裝

發布時間: 2022-06-24 20:12:19

A. 如何在linux下用C/C++語言操作資料庫sqlite3

這里我們假設你已經編譯好了sqlite的庫文件 :
libsqlite3.a libsqlite3.la libsqlite3.so libsqlite3.so.0libsqlite3.so.0.8.6 pkgconfig
和可執行文件 : sqlite3
我們再假設你的sqlite3的安裝目錄在 /usr/local/sqlite3 目錄下。
如果不是,我們可以這樣做,將你的安裝文件復制到 /usr/local/sqlite3 這個目錄,
這樣我們好在下面的操作中更加統一,從而減少出錯的概率
例如:[root@localhost home]# cp -rf sqlite-3.3.8-ix86//usr/local/sqlite3
這里假設 /home/sqlite-3.3.8-ix86/是你的安裝目錄,也就是說你的sqlite原來就是安裝在這里
這樣之後,我們的sqlite3的庫文件目錄是:/usr/local/sqlite3/lib
可執行文件 sqlite3 的目錄是: /usr/local/sqlite3/bin
頭文件 sqlite3.h 的目錄是: /usr/local/sqlite3/include
好拉,現在開始我們的Linux下sqlite3編程之旅。
2. 開始
這里我們現在進行一個測試。
現在我們來寫個C/C++程序,調用 sqlite 的 API 介面函數。
下面是一個C程序的例子,顯示怎麼使用 sqlite 的 C/C++ 介面.資料庫的名字由第一個參數取得且第二個參數或更多的參數是 SQL 執行語句. 這個函數調用sqlite3_open() 在 16行打開資料庫,並且sqlite3_close() 在 25 行關閉資料庫連接。
[root@localhost temp]# vi opendbsqlite.c
按下 i 鍵切換到輸入模式,輸入下列代碼:

// name: opendbsqlite.c
// This prog is used to test C/C++ API for sqlite3.It is verysimple,ha!
// Author : zieckey All rights reserved.
// data : 2006/11/13
#include <stdio.h>
#include <sqlite3.h>
int main( void )
{
sqlite3 *db=NULL;
char *zErrMsg = 0;
int rc;
//打開指定的資料庫文件,如果不存在將創建一個同名的資料庫文件
rc = sqlite3_open("zieckey.db", &db);
if( rc )
{
fprintf(stderr, "Can't open database: %s
", sqlite3_errmsg(db));
sqlite3_close(db);
exit(1);
}
else printf("You have opened a sqlite3 database named zieckey.dbsuccessfully!
Congratulations! Have fun ! ^-^
");
sqlite3_close(db); //關閉資料庫
return 0;
}
退出,保存。(代碼輸入完成後,按下 Esc 鍵,然後輸入: :wq ,回車就好拉)
好拉,現在編譯:[root@localhost te

或者遇到這樣的問題:
[root@localhost temp]# gcc opendbsqlite.c -o db.out
opendbsqlite.c:11:21: sqlite3.h: 沒有那個文件或目錄
opendbsqlite.c: In function `main':
opendbsqlite.c:19: `sqlite3' undeclared (first use in thisfunction)
opendbsqlite.c:19: (Each undeclared identifier is reported onlyonce
opendbsqlite.c:19: for each function it appears in.)
opendbsqlite.c:19: `db' undeclared (first use in thisfunction)

這是由於沒有找到頭文件的原因。
也許會碰到類似這樣的問題:
[root@localhost temp]# gcc opendbsqlite.c -o db.out
/tmp/ccTkItnN.o(.text+0x2b): In function `main':
: undefined reference to `sqlite3_open'
/tmp/ccTkItnN.o(.text+0x45): In function `main':
: undefined reference to `sqlite3_errmsg'
/tmp/ccTkItnN.o(.text+0x67): In function `main':
: undefined reference to `sqlite3_close'
/tmp/ccTkItnN.o(.text+0x8f): In function `main':
: undefined reference to `sqlite3_close'
collect2: ld returned 1 exit status
這是個沒有找到庫文件的問題。
下面我們著手解決這些問題。
由於用到了用戶自己的庫文件,所用應該指明所用到的庫,我們可以這樣編譯:
[root@localhost temp]# gcc opendbsqlite.c -o db.out-lsqlite3
我用用 -lsqlite3 選項就可以了(前面我們生成的庫文件是 libsqlite3.so.0.8.6 等,
去掉前面的lib和後面的版本標志,就剩下 sqlite3 了所以是 -lsqlite3 )。
如果我們在編譯安裝的時候,選擇了安裝路徑,例如這樣的話:
.......
# ../sqlite/configure --prefix=/usr/local/sqlite3
# make
.......
這樣編譯安裝時,sqlite的庫文件將會生成在 /usr/local/sqlite3/lib 目錄下
sqlite的頭文件將會生成在 /usr/local/sqlite3/include 目錄下
這時編譯還要指定庫文件路徑,因為系統默認的路徑沒有包含 /usr/local/sqlite3/lib
[root@localhost temp]# gcc opendbsqlite.c -o db.out -lsqlite3-L/usr/local/sqlite3/lib

如果還不行的話,可能還需要指定頭文件 sqlite3.h 的路徑,如下:
[root@localhost temp]# gcc opendbsqlite.c -o db.out -lsqlite3-L/usr/local/sqlite3/lib -I/usr/l

這樣編譯應該就可以了 ,運行:
[root@localhost temp]# ./db.out
./db.out: error while loading shared libraries:libsqlite3.so.0: cannot open shared object file: No such file ordirectory
運行是也許會出現類似上面的錯誤。
這個問題因為剛剛編譯的時候沒有選擇靜態編譯,那麼按照默認的編譯就動態編譯的。
動態編譯後,由於可執行文件在運行時要調用系統庫文件,
那麼沿著系統默認的庫文件搜索路徑搜索,就可能找不到我們現在所需的庫文件。
致使出現 "error while loading shared libraries" 等錯誤。
我們可以這樣解決:
方法一:靜態編譯
在編譯時加上 -static 參數,例如
[root@localhost temp]# gcc opendbsqlite.c -o db.out -lsqlite3-L/usr/local/sqlite3/lib -I/usr/local/sqlite3/include -static
[root@localhost temp]# ll
總用量 1584
-rwxr-xr-x 1 root root 1596988 11月 13 10:50 db.out
-rw-r--r-- 1 root root 614 11月 13 10:31 opendbsqlite.c
可以看到輸出文件 db.out ,其大小為: 1596988k
運行,好了,沒有出現錯誤
[root@localhost temp]# ./db.out
You have opened a sqlite3 database named zieckey.dbsuccessfully!
Congratulations! Have fun ! ^-^
方法二:重新配置系統環境變數 LD_LIBRARY_PATH
這時需要指定 libsqlite3.so.0 庫文件的路徑,也就是配置系統環境變數 LD_LIBRARY_PATH,

使系統能夠找到 libsqlite3.so.0 。
去掉 -static ,在編譯:
[root@localhost temp]# gcc opendbsqlite.c -o db.out -lsqlite3-L/usr/local/sqlite3/lib -I/usr/local/sqlite3/include
[root@localhost temp]# ll
總用量 36
-rwxr-xr-x 1 root root 12716 11月 13 10:56 db.out
-rw-r--r-- 1 root root 614 11月 13 10:31 opendbsqlite.c
[root@localhost temp]#
可以看到輸出文件 db.out ,其大小為: 12716k,比剛才的靜態編譯要小得多。
所以我們推薦使用動態編譯的方法。
好了,現在我們來指定系統環境變數 LD_LIBRARY_PATH 的值
在shell下輸入:
[root@localhost temp]# exportLD_LIBRARY_PATH=/usr/local/sqlite3/lib:$LD_LIBRARY_PATH
再運行
[root@localhost temp]# ./db.out
You have opened a sqlite3 database named zieckey.dbsuccessfully!
Congratulations! Have fun ! ^-^

B. 如何將sqlite資料庫移植到ARM開發板上

一、准備
busybox
1.14.1
qt-embedded-linux-opensource-src-4.5.1
tslib
1.4
gcc
version
4.3.2
(Sourcery
G++
Lite
2008q3-72)
構建一個新的根文件系統目錄,路徑為
/root/rootfs
二、具體步驟:
1、編譯安裝busybox
在官網下載最新版。可以參考如下幾處要修改的地方:
Busybox
Settings
--->
Build
Options
--->
(arm-linux-)Cross
Compiler
prefix
Busybox
Settings
--->
Installation
Options
--->[]Dont't
use
/usr
Busybox
Settings
--->
Installation
Options
--->(/root/rootfs)
BusyBox
installation
prefix
Busybox
Settings
--->Busybox
Library
Tuning
--->[*]
Fancy
Shell
prompts
輸入如下命令,編譯並安裝。
#
make;make
install
2、編譯安裝tslib
#
./autogen.sh
#
./configure
-prefix=/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/usr/
-host=arm-linux
ac_cv_func_malloc_0_nonnull=yes
#
make;make
install
安裝目錄指明為
/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/usr/
主要是為了在編譯QTE時,不用指定tslib的頭文件和庫文件,方便以後程序開發。
注意:在做這一步前,需要做一個目錄鏈接
在/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/usr/目錄下
#
ln
-s
../../usr/include
./
3、編譯安裝QTE
1)、最基本的配置
#
./configure
-prefix
/usr
-embedded
arm
-xplatform
qws/linux-arm-g++
-depths
16
-qt-mouse-tslib
-prefix
/usr
使用這個配置,編譯後的QTE庫文件即可放在目標文件系統的/usr/lib下,而不是默認/usr/local/Trolltech/QtEmbedded-4.5.1
這個很深的目錄
2)、編譯
#
make
#
cp
lib/*
/root/rootfs/usr/lib
-rd
將QTE庫文件拷貝到根文件系統的目錄
#
cp
plugins
/root/rootfs/usr
-rd
將QTE插件目錄拷貝到根文件系統的目錄
4、根文件系統的設置
1)、這時/root/rootfs/usr下應該有
bin
etc
include
lib
sbin目錄
tslib生成的etc目錄,包含一個tslib的配置文件
nf,編輯此文件,去掉mole_raw
input前的注釋
#
mv
etc
../
移動到rootfs的根目錄
2)、進行一次清理操作
#arm-linux-strip
lib/*.so
#arm-linux-strip
usr/lib/*.so
3)、編輯etc/profile,添加以下內容
export
QWS_MOUSE_PROTO=Tslib:/dev/event0
export
TSLIB_CONSOLEDEVICE=none
export
TSLIB_FBDEVICE=/dev/fb0
export
TSLIB_TSDEVICE=/dev/event0
export
TSLIB_CALIBFILE=/etc/pointercal
export
TSLIB_CONFFILE=/etc/nf
export
TSLIB_PLUGINDIR=/usr/lib/ts
最後,通過mkyaffs2image
製作鏡像,燒寫鏡像,啟動ts_calibrate校驗觸屏即可。

C. 好多說sqlite不需要安裝,不需要配置。但也有的說需要配置,高手指點下!最好具體點

這要看你是干什麼的了?
要是寫程序,就不用安裝,只要把源代碼編譯成庫文件,然後include sqliteX.h 就可以了。
要是你想裝可視的客戶端,就要安裝相應的客戶端啊。
如果用控制台操作sqlite可能還需要設置環境變數吧?記不太清了。反正很簡單的配置。
但是你的問題提的,讓人不好幫你……
我也只能說到這里了。如果還有問題,你可以追問。

D. 如何編譯SQLite-How To Compile SQLite

SQLite是ANSI-C的源代碼。在使用之前必須要編譯成機器碼。這篇文章是用於各種編譯SQLite方法的指南。

這篇文章不包含編譯SQLite的每個步驟的反饋,那樣可能會困難因為每種開發場景都不同。所以這篇文章描述和闡述了編譯Sqlite的原則。典型的編譯命令已經作為例子提供了,以期望應用開發者能夠使用這些例子作為完成他們自己定製的編譯過程的的一個指南。換句話說,這篇文章提供了想法和見解,而不是交鑰匙的解決方法。

融合VS單獨源文件

Sqlite是由超過一百個c源碼文件以及眾多的目錄下的腳本構建的。Sqlite的實現是純粹的ANSI-C,但是許多c語言源代碼文件是由輔助的C程序生成或者轉換來的,並且AWK,SED和TCL腳本會融合到完成的sqlite庫中。對Sqlite構建需要的C程序和轉換和創建C語言源碼是一個復雜的過程。

為了簡化這些,sqlite也通過一個預打包的合並後的源碼文件:sqlite3.c。這個合並文件是一個ANSI-C源碼實現整個SQLite庫的唯一文件。合並後的文件更容易處理。所有的東西都包含在這一個文件里,所以很容易進入一個更大的C或者C++程序的源碼樹。所有的代碼生成和轉換步驟都已經實現了,因此沒有輔助的C程序需要去配置和變異,也沒有腳本需要去運行。並且,因此所有哭都包含在一個翻譯單元,編譯器可以做更多高級的優化從而提升5%到10%的性能。因為這些原因,融合後的源碼文件sqlite3.c對所有程序來講都是值得推薦的。

推薦所有的應用程序使用融合文件。

直接從單獨的源碼文件中構建sqlite當然可以,但是並不推薦。對一些特殊的應用程序,可能需要修改構建程序去處理使用那些從網站上下載的預構建的源碼文件不能完成的情況。對於這些情況,推薦構建和使用一個定製過的合並文件。換句話說,即使一個工程需要以單獨的源碼文件構建sqlite,仍然推薦使用一個融合後的源碼文件作為一個中間步驟。

編譯命令行介面(CLI)

構建命令行介面需要三個源碼文件:

sqlite3.c:Sqlite融合的源碼文件

sqlite3.h:匹配sqlite3.c以及定義sqlite的c語言介面的頭文件

shell.c:命令行介面程序本身。這個c源碼文件包含一個main()的常式和每輪循環的用戶輸入的提示符並將輸入傳給sqlite資料庫引擎用於處理。

所有的上述源碼的三個文件都被包含在下載頁面的amalgamation tarball中。

為了構建CLI,簡單的將這三個文件放置在相同的目錄下然後一起編譯他們。用MSVC:
cl shell.c sqlite3.c -Fesqlite3.exe

在unix系統上(或者在windows上用cygwin或者mingw+msys)典型的命令會有些像這樣:
gcc shell.c sqlite3.c -lpthread -ldl

為了SQLite線程安全,需要pthreads庫。但是因為CLI是一個單線程的,我們可以指示SQLite構建一個非線程安全的庫並因此護綠pthreads庫:
gcc -DSQLITE_THREADSAFE=0 shell.c sqlite3.c -ldl

-ldl庫是在支持動態裝載時需要,例如sqlite3_load_extension() 介面和load_extension()
SQL function。如果這些特性都不要求,那麼我們也可以使用SQLITE_OMIT_LOAD_EXTENSION編譯時間選項忽略他們。
gcc -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION shell.c sqlite3.c

有人可能想要提供其他的編譯時間選項(compile-time options),例如SQLITE_ENABLE_FTS3去全文本搜索或者SQLITE_ENABLE_RTREE用於R*樹搜索引擎擴展。而有人將正常指定一些編譯優化開關。(預編譯的CLI可以從選擇sqlite網站上使用「-Os」下載下來)有無數種可能的變數在這里。

關鍵點在這里:構建CLI需要編譯一起兩個C語言文件。shell.c文件包含入口的定義和用戶輸入的loop,而sqlite融合文件sqlite3.c包含完整的sqlite庫的實現。

編譯TCL介面

sqlite的tcl介面是一個小的模塊被添加到一般的融合文件中。結果是一個新的融合後的源碼文件,稱之為「tclsqlite3.c」。這個源碼文件是生成一個可以使用TCL

load命令去載入到一個標準的tclsh或者wish中,或者隨著sqlite構建成功生成一個單獨唯一的tclsh的共享庫所需要的。一個tcl的融合的副本被包含在下載頁的TEA
tarball中作為一個文件。

為了生成一個linux上的sqlite的TCL-loadable庫,下面的命令需要滿足:
gcc -o libtclsqlite3.so -shared tclsqlite3.c -lpthread -ldl -ltcl

不幸的是構建Mac OS X 和 Windows的共享庫並不是如此簡單。對於這些平台最好使用包含在TEA tarball中的configure腳本和makefile.

為了生成一個單獨的tclsh,可以用於sqlite靜態鏈接,使用如下的編譯器調用:
gcc -DTCLSH=1 tclsqlite3.c -ltcl -lpthread -ldl -lz -lm

這里的技巧是-DTCLSH=1選項。sqlite的TCL介面模塊包含一個main的過程,用於初始化一個TCL解釋器並在以-DTCLSH=1編譯後進入到一個命令行loop。上述命令可以工作在Linux和Mac
OS X,雖然有時可能需要依賴於平台調整庫選項以及編譯的TCL的哪一個版本。

構建融合文件

下載頁提供的sqlite融合文件的版本對大多數用戶來說是足夠的。然而,一些工程可能想要或者需要構建他們自己的融合文件。一個常見的構建一個定製的融合文件的理由是為了使用特定的compile-time options來定製sqlite庫。回想sqlite融合文件中包含了許多C代碼由輔助程序和腳本生成。許多的編譯時間選項影響這一成聖代碼而且必須在融合文件組裝前提供給代碼生成器。這一系列必須傳給代碼生成器的編譯時間相關的選項會使得sqlite的發布版本各不相同,但是在寫這邊文章的時候,代碼生成器需要知道的這組選項包括:

SQLITE_ENABLE_UPDATE_DELETE_LIMIT
SQLITE_OMIT_ALTERTABLE
SQLITE_OMIT_ANALYZE
SQLITE_OMIT_ATTACH
SQLITE_OMIT_AUTOINCREMENT
SQLITE_OMIT_CAST
SQLITE_OMIT_COMPOUND_SELECT
SQLITE_OMIT_EXPLAIN
SQLITE_OMIT_FOREIGN_KEY
SQLITE_OMIT_PRAGMA
SQLITE_OMIT_REINDEX
SQLITE_OMIT_SUBQUERY
SQLITE_OMIT_TEMPDB
SQLITE_OMIT_TRIGGER
SQLITE_OMIT_VACUUM
SQLITE_OMIT_VIEW
SQLITE_OMIT_VIRTUALTABLE

為了構建一個定製的融合文件,先下載原始的獨立源碼文件到一個unix或者類unix開發平台。確定獲取的原始源碼文件不是「預編譯過的源文件」。任何人都可以通過到下載頁或者直接從configuration management system.獲取完整的一套原始源碼文件。

假設sqlite源碼樹被存在一個名為「sqlite」的目錄下。計劃構建一個平行目錄下的名為「bld」的融合文件。首先通過運行sqlite源碼樹種的configure腳本運行或者通過製作一份源碼樹頂層的的makfile模板的一份,來構建一個合適的makefile.然後手動編輯這個Makfile去包含需要的編譯時間相關的選項。最終運行:
make sqlite3.c

在windows上使用MSVC:
nmake /f Makefile.msc sqlite3.c

sqlite3.c的make
target會自動構造一般的「sqlite3.c」合並的源碼文件,以及它的頭文件「sqlite3.h」,和包含TCL介面的融合源碼文件「tclsqlite3.c」。之後,需要的文件可以被拷貝到文件目錄下然後根據上述勾勒的過程編譯。

構建一個windows的動態鏈接庫DLL

為了在windows構建一個sqlite的dll使用,首先獲取對應的融合過的源碼文件,sqlit3.c和sqlite.h。這些可以從SQLite website上下載或者和上述告知的一樣去定製生成。

使用工作目錄下的源碼文件,一個dll可以在msvc中使用如下命令生成:
cl sqlite3.c -link -dll -out:sqlite3.dll

上述命令需要運行在msvc的MSVC Native Tools Command
Prompt.如何你已經在機器上安裝了msvc,你可能有多個版本的這種命令提示符,針對於x86和x64的自帶構建的,或者交叉編譯到ARM的。依賴要求的DLL去使用對應合適的命令提示符工具。

如果使用MinGW編譯器,命令是這樣的:
gcc -shared sqlite3.c -o sqlite3.dll

注意MinGW只生成32位的dll。另有一個分開的MinGW64工程可以用來生成64位的dll。可以推斷其命令行語法是類似的。需要注意的是最近的MSVC的版本生成的DLLs可能不能工作到WinXP或者更早版本的windows上。因此為了最大限度的兼容你的生成的dll,推薦MinGW。一個好的經驗法則是使用MinGW去生成32位的dlls,使用msvc去生成64位的dlls。

E. 那些奇葩python模塊怎麼交叉編譯呀

先運行以下幾步:

[plain] view plain
tar zxf sqlite-amalgamation-3.5.6.tar.gz
cd sqlite-3.5.6
./configure --host=arm-linux --prefix=/usr/local/arm/3.3.2 --enable-shared --disable-readline --disable-dynamic-extensions

以上是把sqlite解壓縮,然後做一些配置,這里,我希望sqlite到時候安裝到/usr/local/arm/3.3.2里,要生成動態鏈接庫,不要readline,不要sqlite的動態擴展。
然後編輯Makefile,把CFLAG和CXXFLAG中的-g去掉,我們不用debug sqlite。
接下來就可以編譯和安裝sqlite了:

[plain] view plain
make
make install

這一步就完成了sqlite的編譯和安裝了。

F. 安裝sqlite3出問題,求助

先從官網獲取sqlite-amalgamation-3_6_22.zip;2.接著從官網獲取sqlitedll-3_6_22.zip下載編譯好的DLL,這里有我們需要的sqlite3.def該文件3.打開VC新建一個「Win32 Dynamic-Link Library」工程,命名為:sqlite3;4.在接下來的對話框中選擇"An empty DLL project",點 FINISH->OK;5.將sqlite-amalgamation-3_6_22文件夾下的sqlite3.h以及sqlite3.c兩個文件復制到工程文件夾下; 將sqlitedll-3_6_22文件夾下的sqlite3.def該文件復制到工程文件夾下;6.在工程的Source Files中添加sqlite3.c文件;7.在工程的Include Files中添加sqlite3.h文件;8.在工程的Resource Files中添加sqlite3.def文件;9

G. linux sqlite zip怎麼安裝

先解包
linux下 unzip xxxxx.zip
再編譯
./configure
安裝
make && make install

H. 請教windows下,安裝sqlite3的方法

1.先從官網獲取sqlite-amalgamation-3_6_22.zip;2.接著從官網獲取sqlitedll-3_6_22.zip

下載編譯好的DLL,這里有我們需要的sqlite3.def該文件
3.打開VC新建一個「Win32 Dynamic-Link Library」工程,命名為:sqlite3;
4.在接下來的對話框中選擇"An empty DLL project",點 FINISH->OK;
5.將sqlite-amalgamation-3_6_22文件夾下的sqlite3.h以及sqlite3.c兩個文件復制到工程文件夾下;
將sqlitedll-3_6_22文件夾下的sqlite3.def該文件復制到工程文件夾下;
6.在工程的Source Files中添加sqlite3.c文件;
7.在工程的Include Files中添加sqlite3.h文件;
8.在工程的Resource Files中添加sqlite3.def文件;
9.針對如下問題:
sqlite3.def : error LNK2001: unresolved external symbol sqlite3_column_database_name
sqlite3.def : error LNK2001: unresolved external symbol sqlite3_column_database_name16
sqlite3.def : error LNK2001: unresolved external symbol sqlite3_column_origin_name
sqlite3.def : error LNK2001: unresolved external symbol sqlite3_column_origin_name16
sqlite3.def : error LNK2001: unresolved external symbol sqlite3_column_table_name
sqlite3.def : error LNK2001: unresolved external symbol sqlite3_column_table_name16
sqlite3.def : error LNK2001: unresolved external symbol sqlite3_table_column_metadata
Debug/sqlite3.lib : fatal error LNK1120: 7 unresolved externals
在菜單【Project】-【Settings…】-【C/C++】標簽下的Category【General】下
Preprocessor definitions下:
新增2個編譯選項,分別是:
THREADSAFE
SQLITE_ENABLE_COLUMN_METADATA
10.往工程中添加sqlite3.def文件就是為生成sqlite3.lib文件;
sqlite3.lib是與sqlite3.dll動態鏈接庫文件一起提供給軟體開發者的;

I. sqlite3怎麼指定編譯工具

一、sqlite-3.3.8編譯安裝
請閱讀在安裝包里的 INSTALL或者README 文件。SQLite已經內置了,你不需要安裝任何附加的軟體(additional software)。
Windows users可以下載SQLite擴展DLL。
這里簡單介紹一下:
假設你得到的是源代碼sqlite-3.3.8.tar.gz,這里將告訴你怎麼編譯它。
解壓sqlite-3.3.8.tar.gz 到 /home目錄下
For example:
tar zxvf sqlite-3.3.8.tar.gz -C /home
cd /home
mkdir sqlite-3.3.8-ix86
cd /home/sqlite-3.3.8-ix86/
../sqlite-3.3.8/configure --prefix=/home/sqlite-3.3.8-ix86
編譯並安裝,然後生成幫助文檔
make && make install && make doc

如果出現下列錯誤
../sqlite-3.3.8/src/tclsqlite.c: In function `DbUpdateHandler':
../sqlite-3.3.8/src/tclsqlite.c:333: warning: passing arg 3 of `Tcl_ListObjAppendElement' makes pointer from integer without a cast
../sqlite-3.3.8/src/tclsqlite.c: In function `tclSqlFunc':
../sqlite-3.3.8/src/tclsqlite.c:419: warning: passing arg 1 of `Tcl_NewByteArrayObj' discards qualifiers from pointer target type
...

這個都是tcl相關的錯誤,可以先安裝ActiveTcl以解決.假如你不需要tcl支持,那麼這個錯誤可以這樣避免:
cd /home/sqlite-3.3.8-ix86/
../sqlite-3.3.8/configure --disable-tcl --prefix=/home/sqlite-3.3.8-ix86
編譯並安裝,然後生成幫助文檔
make && make install && make doc
不出意外,將不會出現錯誤,那麼
Libraries have been installed in:
/home/sqlite-3.3.8-ix86/lib

庫文件已經生成在 /home/sqlite-3.3.8-ix86/lib 目錄下
可執行文件sqlite3已經生成在 /home/sqlite-3.3.8-ix86/bin 目錄下
下面創建一個新的資料庫文件名叫"zieckey.db" (當然你可以使用不同的名字) 來測試資料庫.
直接輸入: /home/sqlite-3.3.8-ix86/bin/sqlite3 test.db
如果出現下面字樣表明編譯安裝已經成功了.
SQLite version 3.3.8
Enter ".help" for instructions
sqlite>

二 、SQLite的基本語法

這一章我們將會學習到sqlite的基本語法,sqlite的語法現象和SQL92是比較相象的,
或者說sqlite3兼容大部份SQL92的語法現象。
下面我們看看怎麼用這些語法現象來創建資料庫以及對資料庫的各種操作。

2.1 新建一個資料庫
例如我們想新建一個資料庫命名為zieckey.db ,可以直接在shell下輸入 sqlite3 zieckey.db ,

前提是:先進放sqlite的安裝文件夾下然後執行下面的操作:

# ./sqlite3 zieckey.db
SQLite version 3.0.8
Enter ".help" for instructions
sqlite>

這里 SQLite version 3.0.8 是SQLite的版本信息。也就是說本文使用的sqlite版本為 version 3.0.8 .
這樣就創建了一個新的資料庫文件,命名為 zieckey.db

2.2 創建表和插入值
剛剛我們創建了一個新的資料庫zieckey.db,加入我們想在其中新建一個名為 SensorData 的表,其包含五個列元素。
可以用CREATE TABLE語法命令。
CREATE TABLE語句基本上就是"CREATE TABLE"關鍵字後跟一個新的表名以及括弧內的一堆定義和約束。表名可以是字元串或者標識符。以"sqlite_"開頭的表名是留給sqlite資料庫引擎使用的。每個欄位的定義是欄位名後跟欄位的數據類型,接著是一個或多個的欄位約束。欄位的 數據類型並不限制欄位中可以存放的數據。更多信息,參見sqlite的CREATE TABLE語法。

這里具體作法如下:

# sqlite3 zieckey.db
SQLite version 3.0.8
Enter ".help" for instructions
sqlite> CREATE TABLE SensorData(
...> ID INTEGER PRIMARY KEY,
...> SensorID INTEGER,
...> SiteNum INTEGER,
...> Time VARCHAR(12),
...> SensorParameter REAL
...> );

注意sqlite下除了特殊命令都要以分號 「;」 結尾,否則它將一直等待第一個分號的出現才判斷這條命令結束。

熱點內容
wemall微商城源碼 發布:2025-05-14 22:15:20 瀏覽:803
隆地優選交易密碼是什麼 發布:2025-05-14 21:53:23 瀏覽:94
強酸強鹼存儲櫃 發布:2025-05-14 21:45:16 瀏覽:563
車輛參數配置包括什麼 發布:2025-05-14 21:31:03 瀏覽:163
怎麼引入安卓項目 發布:2025-05-14 21:26:39 瀏覽:824
游戲輔編程 發布:2025-05-14 21:18:49 瀏覽:687
三菱plc一段二段密碼什麼意思 發布:2025-05-14 21:17:16 瀏覽:528
電腦開機密碼忘記了怎麼破解 發布:2025-05-14 21:09:40 瀏覽:57
pythondict格式 發布:2025-05-14 21:09:38 瀏覽:887
落葉片拍攝腳本 發布:2025-05-14 20:40:49 瀏覽:800