This was a problem for me too. I just chalked it up to deleting options and using the amalgamated source. (Seem to recall reading that this is not recommended.)
Replace: SQLITE_PRIVATE void sqlite3MaterializeView(Parse*, Select*, Expr*, u32, int); with: #if !defined(SQLITE_OMIT_VIEW) && !defined(SQLITE_OMIT_TRIGGER) SQLITE_PRIVATE void sqlite3MaterializeView(Parse*, Select*, Expr*, u32, int); #else /* #if !defined(SQLITE_OMIT_VIEW) && !defined(SQLITE_OMIT_TRIGGER) */ # define sqlite3MaterializeView(A,B,C,D,E) 0 #endif /* #if !defined(SQLITE_OMIT_VIEW) && !defined(SQLITE_OMIT_TRIGGER) */ or equivalent. As I recall, this function is called from within an if block whose condition (because of the #defines) will never be true. For those of us who must live with the MSFT compilers, this is a problem. Richard Klein wrote: > I fixed my OPTS in the Makefile so that they are in sync > with my compilation options. > > Now all the unresolved references in the parser have dis- > appeared, but I'm still left with two unresolved references > to the function sqlite3MaterializeView(): > > delete.obj : error LNK2019: unresolved external symbol > _sqlite3MaterializeView referenced in function _sqlite3DeleteFrom > update.obj : error LNK2019: unresolved external symbol > _sqlite3MaterializeView referenced in function _sqlite3Update > > The function sqlite3MaterializeView() is defined in the > file delete.c, as follows: > > ------------------------------------------------------------------------ > #if !defined(SQLITE_OMIT_VIEW) && !defined(SQLITE_OMIT_TRIGGER) > /* > ** Evaluate a view and store its result in an ephemeral table. The > ** pWhere argument is an optional WHERE clause that restricts the > ** set of rows in the view that are to be added to the ephemeral table. > */ > void sqlite3MaterializeView( > ... > ){ > ... > } > #endif /* !defined(SQLITE_OMIT_VIEW) && !defined(SQLITE_OMIT_TRIGGER) */ > ------------------------------------------------------------------------ > > In my application, I've defined SQLITE_OMIT_VIEW, but *not* > SQLITE_OMIT_TRIGGER; that is, I want TRIGGERs, but not VIEWs. > > It would seem that in the conditional compilation expression > shown above, the && should be replaced by ||: > > #if !defined(SQLITE_OMIT_VIEW) || !defined(SQLITE_OMIT_TRIGGER) > > In other words, if VIEW *or* TRIGGER is supported, then define > the function sqlite3MaterializeView(). > > Making that change fixes the problem. > > - Richard > _______________________________________________ > sqlite-users mailing list > sqlite-users@sqlite.org > http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users > > _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users