The forward references do not contain the SQLITE_API preface, yet the function declarations do. This means that if you define SQLITE_API as static (ie, for inclusion in APSW) then the rebaser functions cause the compiler to toss a bunch of errors:
D:\Source\apsw\sqlite3.c:185554:16: error: static declaration of 'sqlite3rebaser_create' follows non-static declaration SQLITE_API int sqlite3rebaser_create(sqlite3_rebaser **ppNew){ ^~~~~~~~~~~~~~~~~~~~~ In file included from src/apsw.c:47:0: D:\Source\apsw\sqlite3.c:11369:5: note: previous declaration of 'sqlite3rebaser_create' was here int sqlite3rebaser_create(sqlite3_rebaser **ppNew); ^~~~~~~~~~~~~~~~~~~~~ In file included from src/apsw.c:47:0: D:\Source\apsw\sqlite3.c:185571:16: error: static declaration of 'sqlite3rebaser_configure' follows non-static declaration SQLITE_API int sqlite3rebaser_configure( ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from src/apsw.c:47:0: D:\Source\apsw\sqlite3.c:11380:5: note: previous declaration of 'sqlite3rebaser_configure' was here int sqlite3rebaser_configure( ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from src/apsw.c:47:0: D:\Source\apsw\sqlite3.c:185588:16: error: static declaration of 'sqlite3rebaser_rebase' follows non-static declaration SQLITE_API int sqlite3rebaser_rebase( ^~~~~~~~~~~~~~~~~~~~~ In file included from src/apsw.c:47:0: D:\Source\apsw\sqlite3.c:11399:5: note: previous declaration of 'sqlite3rebaser_rebase' was here int sqlite3rebaser_rebase( ^~~~~~~~~~~~~~~~~~~~~ In file included from src/apsw.c:47:0: D:\Source\apsw\sqlite3.c:185554:16: error: static declaration of 'sqlite3rebaser_create' follows non-static declaration SQLITE_API int sqlite3rebaser_create(sqlite3_rebaser **ppNew){ ^~~~~~~~~~~~~~~~~~~~~ In file included from src/apsw.c:47:0: D:\Source\apsw\sqlite3.c:11369:5: note: previous declaration of 'sqlite3rebaser_create' was here int sqlite3rebaser_create(sqlite3_rebaser **ppNew); ^~~~~~~~~~~~~~~~~~~~~ In file included from src/apsw.c:47:0: D:\Source\apsw\sqlite3.c:185607:16: error: static declaration of 'sqlite3rebaser_rebase_strm' follows non-static declaration SQLITE_API int sqlite3rebaser_rebase_strm( ^~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from src/apsw.c:47:0: D:\Source\apsw\sqlite3.c:11572:5: note: previous declaration of 'sqlite3rebaser_rebase_strm' was here int sqlite3rebaser_rebase_strm( ^~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from src/apsw.c:47:0: D:\Source\apsw\sqlite3.c:185571:16: error: static declaration of 'sqlite3rebaser_configure' follows non-static declaration SQLITE_API int sqlite3rebaser_configure( ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from src/apsw.c:47:0: D:\Source\apsw\sqlite3.c:11380:5: note: previous declaration of 'sqlite3rebaser_configure' was here int sqlite3rebaser_configure( ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from src/apsw.c:47:0: D:\Source\apsw\sqlite3.c:185628:17: error: static declaration of 'sqlite3rebaser_delete' follows non-static declaration SQLITE_API void sqlite3rebaser_delete(sqlite3_rebaser *p){ ^~~~~~~~~~~~~~~~~~~~~ In file included from src/apsw.c:47:0: D:\Source\apsw\sqlite3.c:11413:6: note: previous declaration of 'sqlite3rebaser_delete' was here void sqlite3rebaser_delete(sqlite3_rebaser *p); ^~~~~~~~~~~~~~~~~~~~~ In file included from src/apsw.c:47:0: D:\Source\apsw\sqlite3.c:185588:16: error: static declaration of 'sqlite3rebaser_rebase' follows non-static declaration SQLITE_API int sqlite3rebaser_rebase( ^~~~~~~~~~~~~~~~~~~~~ In file included from src/apsw.c:47:0: D:\Source\apsw\sqlite3.c:11399:5: note: previous declaration of 'sqlite3rebaser_rebase' was here int sqlite3rebaser_rebase( ^~~~~~~~~~~~~~~~~~~~~ In file included from src/apsw.c:47:0: D:\Source\apsw\sqlite3.c:185607:16: error: static declaration of 'sqlite3rebaser_rebase_strm' follows non-static declaration SQLITE_API int sqlite3rebaser_rebase_strm( ^~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from src/apsw.c:47:0: D:\Source\apsw\sqlite3.c:11572:5: note: previous declaration of 'sqlite3rebaser_rebase_strm' was here int sqlite3rebaser_rebase_strm( ^~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from src/apsw.c:47:0: D:\Source\apsw\sqlite3.c:185628:17: error: static declaration of 'sqlite3rebaser_delete' follows non-static declaration SQLITE_API void sqlite3rebaser_delete(sqlite3_rebaser *p){ ^~~~~~~~~~~~~~~~~~~~~ In file included from src/apsw.c:47:0: D:\Source\apsw\sqlite3.c:11413:6: note: previous declaration of 'sqlite3rebaser_delete' was here void sqlite3rebaser_delete(sqlite3_rebaser *p); ^~~~~~~~~~~~~~~~~~~~~ In file included from src/apsw.c:47:0: D:\Source\apsw\sqlite3.c:185554:16: error: static declaration of 'sqlite3rebaser_create' follows non-static declaration SQLITE_API int sqlite3rebaser_create(sqlite3_rebaser **ppNew){ ^~~~~~~~~~~~~~~~~~~~~ In file included from src/apsw.c:47:0: D:\Source\apsw\sqlite3.c:11369:5: note: previous declaration of 'sqlite3rebaser_create' was here int sqlite3rebaser_create(sqlite3_rebaser **ppNew); ^~~~~~~~~~~~~~~~~~~~~ In file included from src/apsw.c:47:0: D:\Source\apsw\sqlite3.c:185571:16: error: static declaration of 'sqlite3rebaser_configure' follows non-static declaration SQLITE_API int sqlite3rebaser_configure( ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from src/apsw.c:47:0: D:\Source\apsw\sqlite3.c:11380:5: note: previous declaration of 'sqlite3rebaser_configure' was here int sqlite3rebaser_configure( ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from src/apsw.c:47:0: D:\Source\apsw\sqlite3.c:185588:16: error: static declaration of 'sqlite3rebaser_rebase' follows non-static declaration SQLITE_API int sqlite3rebaser_rebase( ^~~~~~~~~~~~~~~~~~~~~ In file included from src/apsw.c:47:0: D:\Source\apsw\sqlite3.c:11399:5: note: previous declaration of 'sqlite3rebaser_rebase' was here int sqlite3rebaser_rebase( ^~~~~~~~~~~~~~~~~~~~~ In file included from src/apsw.c:47:0: D:\Source\apsw\sqlite3.c:185607:16: error: static declaration of 'sqlite3rebaser_rebase_strm' follows non-static declaration SQLITE_API int sqlite3rebaser_rebase_strm( ^~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from src/apsw.c:47:0: D:\Source\apsw\sqlite3.c:11572:5: note: previous declaration of 'sqlite3rebaser_rebase_strm' was here int sqlite3rebaser_rebase_strm( ^~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from src/apsw.c:47:0: D:\Source\apsw\sqlite3.c:185628:17: error: static declaration of 'sqlite3rebaser_delete' follows non-static declaration SQLITE_API void sqlite3rebaser_delete(sqlite3_rebaser *p){ ^~~~~~~~~~~~~~~~~~~~~ In file included from src/apsw.c:47:0: D:\Source\apsw\sqlite3.c:11413:6: note: previous declaration of 'sqlite3rebaser_delete' was here void sqlite3rebaser_delete(sqlite3_rebaser *p); ^~~~~~~~~~~~~~~~~~~~~ --- The fact that there's a Highway to Hell but only a Stairway to Heaven says a lot about anticipated traffic volume. _______________________________________________ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users