我们在应用程序中使用sqlite3,我们确实需要通过删除不必要的函数来构建超小型的sqlite3。我们已经在使用-Os标志了。
我们的应用程序仅使用具有多个索引的单个表以及简单的选择,更新,插入,删除查询。所有列都是整数,文本或blob。
我尝试使用下面的各种SQLITE_OMIT_ *标志从规范源生成sqlite3.c的自定义构建,但似乎只对二进制大小产生了微不足道的影响。
有关其他OMIT选项的任何建议。此外,如果任何OMIT选项对我上面提到的有限使用有任何副作用。
-DSQLITE_OMIT_ALTERTABLE
-DSQLITE_OMIT_ANALYZE
-DSQLITE_OMIT_ATTACH
-DSQLITE_OMIT_AUTHORIZATION
-DSQLITE_OMIT_BUILTIN_TEST
-DSQLITE_OMIT_CAST
-DSQLITE_OMIT_CHECK
-DSQLITE_OMIT_COMPILEOPTION_DIAGS
-DSQLITE_OMIT_COMPLETE
-DSQLITE_OMIT_COMPOUND_SELECT
-DSQLITE_OMIT_CTE
-DSQLITE_OMIT_DATETIME_FUNCS
-DSQLITE_OMIT_DECLTYPE
-DSQLITE_OMIT_DEPRECATED
-DSQLITE_OMIT_EXPLAIN
-DSQLITE_OMIT_FLAG_PRAGMAS
-DSQLITE_OMIT_FLOATING_POINT
-DSQLITE_OMIT_FOREIGN_KEY
-DSQLITE_OMIT_UTF16
答案 0 :(得分:1)
您可以使用所有SQLITE_OMIT_xxx
选项,因为您没有提及使用任何这些功能。
不要使用SQLITE_OMIT_WSD
,它实际上不会删除代码并会使库变大。
使用SQLITE_OMIT_AUTOINIT
没有意义。
如果您忘记提及数据存储在磁盘上,则应避免使用SQLITE_OMIT_DISKIO
。