如何編譯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?
- #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;
- }
#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 ,如下圖所示:
7.新增預定義選項SQLITE_ENABLE_COLUMN_METADATA、SQLITE_ENABLE_RTREE,這是sqlite3的巨集定義。
8.按F7生成相應的dll和lib。