SQLite is a software library that implements a self-contained, serverless, zero-configuration, transactional SQL database engine. SQLite is the most widely deployed SQL database engine in the world. The source code for SQLite is in thepublic domain.html
下載源代碼
sql
能夠在下面的連接中找到「Source Code」一欄:shell
http://www.sqlite.org/download.htmlless
當前提供了兩個下載源,咱們選擇第一個dom
sqlite-amalgamation-3080402.zipide
這個是將代碼整合過的,解壓後應該有下面幾個文件:spa
shell.ccode
sqlite3.cserver
sqlite3ext.hsqlite
sqlite3.h
其中sqlite3.c源文件很大。能夠看得出確實是整合在一塊兒的,不過不影響咱們編譯。
2. 編譯源代碼
這裏使用Visual Studio 2013進行編譯,啓動VS2013,選擇從現有代碼建立項目,如圖:
項目類型爲Visual C++,項目文件位置選擇解壓的源代碼目錄,項目名稱隨便打一個,其餘選項默認,下一步。
項目類型選擇靜態庫lib(若是你之後要直接把SQLite庫打包進exe),或者選擇動態連接庫(會獨立一個SQLite.dll),這裏就選擇靜態庫lib。
而後下一步,下一步,完成就好了。
進入項目後,能夠在解決方案資源管理器中查看添加進入的頭文件和源文件。
選擇Debug或者Release模式進行編譯,這個過程很快就完成了,編譯成功會獲得響應的lib文件。
1>------ 已啓動生成: 項目: test, 配置: Debug Win32 ------
1> sqlite3.c
1> shell.c
1> 正在生成代碼...
1> test.vcxproj -> xxx \sqlite-amalgamation-3080402\sqlite-amalgamation-3080402\Debug\test.lib
========== 生成: 成功 1 個,失敗 0 個,最新 0 個,跳過 0 個 ==========
3. 建立項目
爲了方便操做,咱們能夠直接在當前解決方案中添加一個項目(這裏選擇Win32控制檯應用程序),如圖:
進入新建項目的屬性頁,添加引用,由於同在一個解決方案下,會找到SQLite的庫引用,就不用再去用預處理導入lib文件了。
而後須要包含sqlite的頭文件,這裏圖方便就直接把sqlite項目的頭文件Copy過來,注意不要在VS中複製粘貼,由於那是虛連接,咱們直接在磁盤進行拷貝,而後在VS中添加現有項就OK。
而後按照官方的演示,直接照抄示例代碼以下:
// ConsoleApplication1.cpp : 定義控制檯應用程序的入口點。 // #include "stdafx.h" #include "sqlite3.h" static int callback(void *NotUsed, int argc, char **argv, char **azColName) { int i; for (i = 0; i < argc; i++) { printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL"); } printf("\n"); return 0; } int _tmain(int argc, char* argv[]) { sqlite3 *db; char *zErrMsg = 0; int rc; if (argc != 3){ fprintf(stderr, "Usage: %s DATABASE SQL-STATEMENT\n", argv[0]); return(1); } rc = sqlite3_open(argv[1], &db); if (rc){ fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db)); sqlite3_close(db); return(1); } rc = sqlite3_exec(db, argv[2], callback, 0, &zErrMsg); if (rc != SQLITE_OK){ fprintf(stderr, "SQL error: %s\n", zErrMsg); sqlite3_free(zErrMsg); } sqlite3_close(db); return 0; }
編譯運行,輸入參數,而後查看效果。
下面是官方提供的API參考文檔:
http://www.sqlite.org/c3ref/intro.html
這裏就不一一演示了。