1. 程式人生 > >如何編譯SQLite原始碼

如何編譯SQLite原始碼

目錄(?)[-]

 WIN7+VS2010下配置編譯SQLite_3.8.6

開啟上面的連結我們需要下載兩個元件:1.SQLite的原始碼 2.SQLite的.def模組定義檔案(用來生成lib檔案和dll檔案)如圖:

頁面往下找到:

2.配置步驟

將這兩個檔案下載下來解壓到當前目錄即可:

緊接著我們開啟VS2010新建一個Win32應用程式,專案命名為sqlite3配置如圖:

然後把剛才下載解壓出來的檔案複製到這個專案下如圖:

貼上到剛才新建的專案中幷包含進專案:

包含進專案:

然後配置專案屬性:

由於Release版和Debug版不能混用有,時候名字一樣不好區分到底是哪個版本的庫,所以Debug版加上d用以區分,到時候編譯出來lib和dll會自動以d結尾

Release版這裡預設即可,然後接著配置:

新增模組定義:

配置完畢直接編譯得到lib和dll檔案:

3.測試SQLite

接下來我們新建一個win32控制檯專案,然後在這個專案中我們為sqlite新建幾個資料夾:

把剛才用到的sqlite3.h和sqlite3ext.h複製進include中,把sqlite3d.lib複製到lib中,然後配置的控制檯專案:

在專案中新建一個Main.cpp輸入以下程式碼測試一下sqlite:

[cpp] view plaincopyprint?在CODE上檢視程式碼片派生到我的程式碼片

  1. #include "..\sqlite3\include\sqlite3.h"  
  2. #include <assert.h>  
  3. #define SQLITE_SAFE_CLOSE( Ptr ){ if( nullptr != Ptr ){ sqlite3_close( Ptr ); Ptr = nullptr; } }  
  4. int main()  
  5. {  
  6.     sqlite3* DataBase = nullptr;  
  7.     //開啟或者建立資料庫  
  8.     if( SQLITE_OK != sqlite3_open( "test.db", &DataBase ) )  
  9.     {  
  10.         assert( false );  
  11.         return 0;  
  12.     }  
  13.     //釋放掉資料庫  
  14.     SQLITE_SAFE_CLOSE( DataBase );  
  15.     return 0;  
  16. }  
#include "..\sqlite3\include\sqlite3.h"
#include <assert.h>

#define SQLITE_SAFE_CLOSE( Ptr ){ if( nullptr != Ptr ){ sqlite3_close( Ptr ); Ptr = nullptr; } }
int main()
{
	sqlite3* DataBase = nullptr;
	//開啟或者建立資料庫
	if( SQLITE_OK != sqlite3_open( "test.db", &DataBase ) )
	{
		assert( false );
		return 0;
	}
	//釋放掉資料庫
	SQLITE_SAFE_CLOSE( DataBase );
	return 0;
}

編譯執行一下,提示找不到sqlite3d.dll,把剛才生成的sqlite3d.dll複製到控制檯的exe檔案所在的目錄下重新執行一下即可!

===================================================================================

VS2010下編譯sqlite3  

首先下載原始碼,http://www.sqlite.org/download.html中第一個下載檔案就是,下載sqlite-amalgamation-3071000.zip,當前版本是3.7.10,裡面包含了四個檔案,sqllite3.h、sqlite3.c、sqllite3ext.h、shell.c,shell.c暫時不用,由於原始碼中沒有包含def檔案,所幸其dll版本中包含了def檔案,所以需要下載dll壓縮包,下載地址和原始碼在同一個頁面上,下載sqlite-dll-win32-x86-3071000.zip。

下面就是工程建立步驟:

1.新建VS2010新建一個“Win32 專案”,命名為:sqlite3。

2.在接下來的對話方塊中選擇“DLL”型別,附加選項中選擇“空專案”,點選“完成”。

3.解壓壓縮包,將sqllite3.h、sqlite3.c、sqlite3ext.h、sqlite3.def檔案複製到工程資料夾下。

4.在工程的Include Files中新增sqlite3.h、sqlite3ext.h檔案。

5.工程的Source Files中新增sqlite3.c、sqlite3.def檔案。

6.設定模組定義檔案sqlite3.def,否則生成的dll沒有對應的lib ,如下圖所示:

VS2010下編譯sqlite3 - 無名簫簫 - 金朋軒的部落格

7.新增預定義選項SQLITE_ENABLE_COLUMN_METADATA、SQLITE_ENABLE_RTREE,這是sqlite3的巨集定義。 

VS2010下編譯sqlite3 - 無名簫簫 - 金朋軒的部落格

8.按F7生成相應的dll和lib。