I've tried to add few more SQLITE_OMIT_ defines to my project in order to reduce unused code.

These were found problematic (using latest sqlite snapshot within C++ project in Visual Studio 2013):

1. using the SQLITE_OMIT_ATTACH flag in my project causes error:

VS2013 error: function sqlite3Attach declared but not defined

Probable solution is protect the function declaration too with #ifdef SQLITE_OMIT_ATTACH

2. SQLITE_OMIT_VIRTUALTABLE causes error:

static function 'void sqlite3VtabArgInit(Parse *)' declared but not defined

Probable solution is to protect the sqlite3VtabArgInit declaration too with #ifdef SQLITE_OMIT_VIRTUALTABLE

3. SQLITE_OMIT_VIEW causes error:

error C2129: static function 'void sqlite3CreateView(Parse *,Token *,Token *,Token *,ExprList *,Select *,int,int)' declared but not defined

Probable solution: similar to previous cases.

4. SQLITE_OMIT_ANALYZE causes error:

error C2129: static function 'void sqlite3Analyze(Parse *,Token *,Token *)' declared but not defined

Probable solution: similar to previous cases.

5. SQLITE_OMIT_TRIGGER causes warnings, then linker errors:

- sqlite3.c(88510): warning C4101: 'auth' : unreferenced local variable
sqlite3.c(99370): warning C4101: 'xAuth' : unreferenced local variable sqlite3.c(132889): warning C4013: 'sqlite3DeleteTriggerStep' undefined; assuming extern returning int sqlite3.c(134473): warning C4013: 'sqlite3FinishTrigger' undefined; assuming extern returning int sqlite3.c(134478): warning C4013: 'sqlite3BeginTrigger' undefined; assuming extern returning int sqlite3.c(134545): warning C4013: 'sqlite3TriggerUpdateStep' undefined; assuming extern returning int sqlite3.c(134545): warning C4047: '=' : 'TriggerStep *' differs in levels of indirection from 'int' sqlite3.c(134548): warning C4013: 'sqlite3TriggerInsertStep' undefined; assuming extern returning int sqlite3.c(134548): warning C4047: '=' : 'TriggerStep *' differs in levels of indirection from 'int' sqlite3.c(134551): warning C4013: 'sqlite3TriggerDeleteStep' undefined; assuming extern returning int sqlite3.c(134551): warning C4047: '=' : 'TriggerStep *' differs in levels of indirection from 'int' sqlite3.c(134554): warning C4013: 'sqlite3TriggerSelectStep' undefined; assuming extern returning int sqlite3.c(134554): warning C4047: '=' : 'TriggerStep *' differs in levels of indirection from 'int' sqlite3.c(134582): warning C4013: 'sqlite3DropTrigger' undefined; assuming extern returning int sqlite3.c(102503): warning C4700: uninitialized local variable 'bComplex' used
        then link
error LNK2019: unresolved external symbol _sqlite3DeleteTriggerStep referenced in function _yy_destructor error LNK2019: unresolved external symbol _sqlite3FinishTrigger referenced in function _yy_reduce error LNK2019: unresolved external symbol _sqlite3BeginTrigger referenced in function _yy_reduce error LNK2019: unresolved external symbol _sqlite3TriggerUpdateStep referenced in function _yy_reduce error LNK2019: unresolved external symbol _sqlite3TriggerInsertStep referenced in function _yy_reduce error LNK2019: unresolved external symbol _sqlite3TriggerDeleteStep referenced in function _yy_reduce error LNK2019: unresolved external symbol _sqlite3TriggerSelectStep referenced in function _yy_reduce error LNK2019: unresolved external symbol _sqlite3DropTrigger referenced in function _yy_reduce
        fatal error LNK1120: 8 unresolved externals

This is more complex, probably needs more thinking (not sure if a bunch of "#ifdef" calls would fix this).

Many other OMIT flags I am already using work OK.

Regards,

  Miroslav

_______________________________________________
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to