1. 程式人生 > >SQLite 原始碼獲取、編譯與使用

SQLite 原始碼獲取、編譯與使用

一、引言

最近想要寫一個輕巧的桌面端軟體,能夠根據本地的一些資料進行查詢。這個需求就涉及到了資料庫的使用。

通過查詢資料,發現 SQLite 能夠完美解決我的需求,所以這裡開始了 SQLite 的學習。

二、好書:SQLite權威指南(第二版)

這篇部落格並不是一個知識探索與總結的部落格,而是為遇到同樣問題的同學指出一條路的部落格。

這裡,我通過自行閱讀學習《SQLite權威指南(第二版)》的前兩章節的內容,初步瞭解了 SQLite,並且在 Windows 平臺下下載了 SQLite 的原始碼,並進行了編譯,最後連結成了 DLL 動態連結庫。最後還新建了一個專案,在一個簡單的控制檯程式中成功呼叫了前面編譯連結出來的 DLL 動態連結庫,實現了一個簡單的 SQLite Shell 程式。

這本書是一本好書,如果想要了解的同學,可以自行購買或者下載 PDF 來學習。這裡也就不再贅述了。

三、編譯與使用:踏坑之旅

在編譯 SQLite 原始碼和使用的過程中,還是遇到了不少的坑。

第一步,首先是如何在 Windows 上安裝 SQLite。這一塊書上其實講的比較清晰,但是比之其他人認真寫的部落格而言,還是太過於簡略。這裡,大家可以通過這篇部落格來學習如何安裝 SQLite。

第二步,也就是如何編譯 SQLite 原始碼的問題。書上說的比較簡略,如果你按照書上的步驟來實現,肯定是會出問題的,要麼是 sqlite.def 檔案沒有載入到專案中去,要麼就是 sqlite3 的一些巨集定義沒有加上去(會導致編譯錯誤)。這裡,下面這篇部落格已經講解的非常清楚了,我就不班門弄斧了 ^_^:

第三步,當然就是如何使用我們編譯出來的動態連結庫了。這個問題書上說的非常清楚,但是要做出來還是需要翻兩個地方的。

  1. 首先,獲取 SQLite 動態連結庫(DLL)。(書 P25)
    如果你是老老實實按照上一個條目中的那麼編譯成功了,那麼你應該就已經獲得了 SQLite 動態連結庫了。如果你沒有想要自己編譯,那麼就去官網進行下載,這裡直接照搬書上的解釋:
    下載 SQLite 動態連結庫

  2. 然而,下載到了 SQLite 動態連結庫並不意味著就能直接使用了。如果想要通過寫程式使用 SQLite DLL,還需要建立連結程式的匯入庫(LIB)。也就是書中所說的下面一段文字:
    建立連結程式的匯入庫LIB
    建立連結程式的匯入庫LIB
    這裡的描述其實非常清晰了,但是對於 VS 不熟悉的同學可能不知道書中所說的 Visual Studio 的命令列是怎麼使用的。這裡,我也踩過一點坑,不過還是比較容易解決的。
    Visual Studio 命令提示


    通過點選 工具->Visual Studio命令提示進入命令列介面。記得要將當前目錄轉到你所下載的 sqlite3.def 檔案同目錄下:
    sqlite3.lib
    這裡,我把 sqlite3.def 和 sqlite3.dll 放到了桌面上,於是需要在命令提示符視窗中移動到桌面目錄,然後就生成了以下兩個檔案:
    sqlite3.lib 和 sqlite3.exp
    這兩個檔案中的 sqlite3.lib 就是我們需要的檔案。將這個檔案放到專案工程目錄下,在附件依賴項中新增 sqlite3.lib 的宣告即可,具體看書 P32 頁中的描述:
    sqlite3.lib

至此,我們就在書、部落格等等的幫助下完成了 SQLite 原始碼的獲取、編譯與使用。

三、總結

學習的過程,其實就是各種資源的整合的過程。看書是一個系統的學習過程,自己動手也是一個實踐的學習過程,遇到問題看部落格也是一個很重要的解決問題並且思考的過程。

當然了,SQLite 的學習路上我依然還是一個新手。這裡僅僅將我遇到的坑記錄下來,能夠幫到同樣遇到困難的人是我的榮幸。

最後,附上我成功編譯的 SQLite 的原始碼專案和使用 SQLite 原始碼的 Shell 專案的 GitHub 託管地址:

To be Stronger!