天天看點

SQLite編譯(How To Compile SQLite)

Amalgamation Versus Individual Source Files與單個源檔案合并

SQLite是符合ANSI-C規範的源碼。必須編譯成機器碼方可使用。本文就是指導如何通過不同的方式對SQLite進行編譯。

本文不會手把手的教你編譯SQLite(step-by-steprecipe按部就班的菜單)。鑒于開發平台的不同,很難提供一個統一的說明書。相反,本文僅僅是描述和解釋SQLite編譯的基本原理。

如下提供了一些例子,這些例子中包含的通用的編譯指令,幫助應用程式開發人員快速開發自己的自定義編譯程式

下文中提供了許多例子,這些例子包含了很多典型的編譯選項指令。應用程式開發人員可以根據這些例子提供的指導,自定義編譯程式。換言之,授人以魚不如授人以漁(provides ideas and insights,not turnkey solutions)

SQLite由一百多個C檔案和腳本分散在不同的目錄構成。SQLite由純ANSI-C來實作,但是大部分的C語言源碼檔案都是由(auxiliary)C程式或者AWK,SED,和TCL腳本生成或者轉換,進而生成SQLite庫。其中生成必須的C程式和轉換成或者生成C語言源碼本身就是一個複雜的過程。

為了省事,SQLite同樣同樂一個單源碼檔案sqlite3.c。該檔案可以建構完整的SQLite庫。作為一個單源碼檔案,可以很輕易的包含在其他的應用程式當中。所有的代碼生成或者轉換都已經被實作,是以無需執行任何的腳本,無需任何的C程式的配置。整個庫包含一個單獨的轉換單元,編譯器能夠提前優化,性能提升在在5%到10%之間。感慨于此,強烈推薦采用單源碼檔案編譯的方式。

The use of the amalgamation is recommendedfor all applications.

當然也可以通過獨立的源碼檔案來建構SQLite庫,但是不推薦。對于某些特殊的應用,從網頁上下載下傳的已經預編譯的單源檔案可能無法滿足需要進行修改編譯步驟的應用場景。是以,強烈推薦按照下文的步驟,定義一個新的單源碼檔案。就是說,即使項目需要從獨立的源碼檔案開始建構SQLite庫,還是希望能夠将獨立的源碼檔案建構成單源碼檔案,通過中間步驟的方式,來建構SQLite庫(it is still recommended that an amalgamation source file be used asan intermediate step.)

sqlite3.c:SQLite單源碼檔案

sqlite3.h:sqlite3.c的頭檔案以及定義了SQLite的C語言接口

shell.c:指令行接口程式。擁有main函數,循環等待使用者的輸入,然後送出使用者的輸入給SQLite資料庫的引擎處理。

    本文轉自fengyuzaitu 51CTO部落格,原文連結:http://blog.51cto.com/fengyuzaitu/1950364,如需轉載請自行聯系原作者

繼續閱讀