sqlite3原始碼編譯及呼叫
最近在學習sqlite,將我學習的過程與大家分享
我在網上找了一些資料和學習方法,這裡做出彙總與修改.下面是我找的一篇比較好的編譯文章的連結
他這篇文章在'1、 編譯成Win32下的應用程式(*.exe),用於命令列模式下的除錯。'這個環節是沒有問題的.接著往下看到
"2、編譯生成Win32平臺下的動態連結庫(*.dll)。"(你可以先按照他的方法來,如果編譯報錯了,再看我下面的方法,畢竟我的方法也僅僅是改了下配置而已).他這裡有一點小問題.當你生成.dll時還是沒有問題的,但是當你想要生成.lib(.dll的匯出檔案)時就有問題了.我這裡分享一下自己查閱,改錯後的操作方法
環境VS2005
目標:編譯生成win32平臺下的動態連結庫
首先建立win32控制檯程式,選擇dll,空專案
將sqlite-amalgamation-3071100.zip解壓後的sqlite3.c、sqlite3.h、sqlite3ext.h,將sqlite-dll-win32-x86-3071100.zip解壓後的sqlite3.def模組定義檔案一起新增到工程中,在專案屬性->c/c++->前處理器->前處理器定義中新增兩句話SQLITE_ENABLE_COLUMN_METADATA和SQLITE_ENABLE_RTREE此時的前處理器定義是這樣的
在屬性->聯結器->輸入中新增模組定義檔案sqlite3,如圖下(網上還有一種方法,是在sqlite3.cpp中修改define語句,這種方法不好,因為你不知道他的壓縮包版本,可能你會找不到那行程式碼)(附上方法:
# define SQLITE_API修改成
# define SQLITE_API __declspec(dllexport)
)(這種方法改變的源程式,可能會出現其他問題,因為本人沒有試過,如有問題,還請自己查詢解決方法)將編碼格式改成多位元組編碼(字符集)
此時就可以生成.lib和.dll檔案了(可以去debug中檢視是否生成).
下面簡單呼叫一下生成的資料庫動態庫(證明下生成的動態庫是有效的)(如果對動態庫有疑問,可以檢視該連結點選開啟連結,我的部落格中有靜態庫與動態庫的基本所有知識,想了解的可以檢視)
建立win32控制檯程式,控制檯應用程式,空專案
在標頭檔案中新增上面用到的sqlite3.h,在原始檔中建立test.cpp .將生成的動態庫中的.lib和.dll拷貝到與test.cpp相同目錄下.
test.cpp內容如下
附專案目錄
執行結果如下
附上我整理的word文件下載網址:https://pan.baidu.com/s/1MxtoDSTuwZQCkLKam0y5_w,密碼:3or5.
結束
每日一句
Life is real,life is earnest
人生真實,人生誠摯.