SQLite3.8.4.2在Windows平臺下的編譯和使用

SQLite is a software library that implements a self-containedserverlesszero-configurationtransactional 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

  1. 下載源代碼
    sql

能夠在下面的連接中找到「Source Code」一欄:shell

http://www.sqlite.org/download.htmlless

當前提供了兩個下載源,咱們選擇第一個dom

sqlite-amalgamation-3080402.zipide

這個是將代碼整合過的,解壓後應該有下面幾個文件:spa

  1. shell.ccode

  2. sqlite3.cserver

  3. sqlite3ext.hsqlite

  4. 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

這裏就不一一演示了。

相關文章
相關標籤/搜索