[odb-users] Problems using ODB w/ SQLite on Windows

Boris Kolpackov boris at codesynthesis.com
Tue Jul 24 03:50:12 EDT 2012


Hi Oded,

Oded Arbel <oded at geek.co.il> writes:

> I managed to compile libodb and sqlite, but when I try to compile
> libodb-sqlite I get this error:
> 
> connection.obj : error LNK2019: unresolved external symbol
> _sqlite3_unlock_notify referenced in function "public: void __thiscall
> odb::sqlite::connection::wait(void)"
> (?wait at connection@sqlite at odb@@QAEXXZ)
> 
> I've read the code and it appears that I need to add the precompiler
> definition SQLITE_ENABLE_UNLOCK_NOTIFY to the sqlite3 project, which I
> did (and rebuilt) - but to no avail.

libodb-sqlite comes with VC++ project/solution files for building SQLite
with all the necessary defines. You can find them along with a README in
the libodb-sqlite/etc/ directory.

If you still want to try and make your method work, here are all the
defines the we added to the VC++ build for SQLite:

SQLITE_OS_WIN=1
SQLITE_THREADSAFE=1
SQLITE_ENABLE_FTS3=1
SQLITE_ENABLE_RTREE=1
SQLITE_ENABLE_COLUMN_METADATA=1
SQLITE_ENABLE_UNLOCK_NOTIFY=1

I also vaguely remember that doing something like 

-DSQLITE_ENABLE_UNLOCK_NOTIFY

is not enough. You need to set the macro to 1, e.g,:

-DSQLITE_ENABLE_UNLOCK_NOTIFY=1

Boris



More information about the odb-users mailing list