2016-06-08 8 views
0

Wir verwenden sqlite3 in einer Anwendung und wir brauchen wirklich eine super kleine Build von SQLite3 durch Entfernen unnötiger Funktionen. Wir verwenden bereits die Option -Os.Kleine benutzerdefinierte Build von SQLite3

Unsere Anwendung verwendet nur eine einzige Tabelle mit ein paar Indizes und einfache Abfragen auswählen, aktualisieren, einfügen, löschen. Alle Spalten sind entweder Integer, Text oder Blob.

Ich habe versucht, benutzerdefinierte Build von sqlite3.c aus kanonischen Quelle mit verschiedenen SQLITE_OMIT_ * Flags unten zu generieren, scheint aber nur marginale Auswirkungen auf die binäre Größe haben.

Alle Vorschläge zu anderen OMIT-Optionen. Auch wenn eine der OMIT-Optionen irgendwelche Nebenwirkungen für die begrenzte Nutzung hat, die ich oben erwähnt habe.

-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 

Antwort

1

können Sie verwenden, um alle SQLITE_OMIT_xxx Optionen, weil Sie keine dieser Funktionen mit nicht erwähnt.

Verwenden Sie nicht SQLITE_OMIT_WSD, die nicht wirklich Code entfernen und würde die Bibliothek größer machen.

Verwenden SQLITE_OMIT_AUTOINIT wäre nicht sinnvoll.

Wenn Sie vergessen haben zu erwähnen, dass die Daten auf der Festplatte gespeichert sind, sollten Sie vermeiden SQLITE_OMIT_DISKIO.

+0

die Größenreduktion ist extrem vernachlässigbar, auch nach dem Auslassen der meisten Funktionen - etwa 10-15k, nicht wert, IMO zu entfernen. – yumoji