2011-07-12 147 views
3

我認爲這是相同的sqlite3.dll或sqlite3.lib,但如果沒有,我對sqlite3.o(mingw32)感興趣。最小化SQLite庫大小

如何最小化庫的大小(編譯時使用-O3,因爲速度是我最關心的問題,所以不同的編譯器優化不是一種選擇)?
如果我知道在我的程序中不需要SQL的某些部分(如JOINATTACH或觸發器),我是否可以取消對它們的支持(這是針對嵌入式系統和每個字節計數的,或者至少每100字節左右)?
我可以設置哪些預處理器選項來刪除我不需要的FTS或R-Tree支持?我是否將它們設置在命令行或文件中?
是否還有其他可輕鬆移除的東西,我可能不需要,甚至可能不知道它們存在以便將其移除?
一些C API如何?它大部分我從來沒有使用過。

回答

4

請看here。有一章「用於省略功能的選項」。那裏你會找到例如SQLITE_OMIT_ATTACH

但請注意那裏的警告。它說

SQLITE_OMIT_ *編譯時選項通常未經測試,幾乎肯定是 未經測試的組合。在將來的版本中,可能會從代碼中刪除任何或所有這些選項 ,並且不會有任何警告。 對於任何特定發行版,這些選項中的某些可能會導致編譯時或運行時失敗,特別是在與其他選項結合使用時,會發生 特別是 。