2016-06-08 3 views
0

우리는 응용 프로그램에서 sqlite3을 사용하고 있으며 불필요한 기능을 제거하여 sqlite3의 초소형 빌드가 정말로 필요합니다. 우리는 이미 -Os 플래그를 사용하고 있습니다.SQLite3의 작은 사용자 정의 빌드

우리의 응용 프로그램은 몇 가지 색인과 간단한 선택, 업데이트, 삽입, 삭제 쿼리가있는 단일 테이블 만 사용합니다. 모든 열은 정수, 텍스트 또는 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 

답변

1

당신은 모든 SQLITE_OMIT_xxx 옵션을 사용할 수 있습니다.

코드를 실제로 제거하지 않고 라이브러리를 더 크게 만드는 SQLITE_OMIT_WSD을 사용하지 마십시오.

SQLITE_OMIT_AUTOINIT을 사용하는 것이 좋지 않습니다.

데이터가 디스크에 저장되었다는 것을 잊은 경우 SQLITE_OMIT_DISKIO을 피해야합니다.

+0

IMO를 제거 할 가치가없는 대부분의 기능 (약 10-15k)을 생략 한 후에도 크기 축소는 극히 무시할 수 있습니다. – yumoji

관련 문제