编译sqlite3.dll时的问题

在vs2005命令行中使用以下命令编译sqlite3.dll

  1. cl sqlite3.c /c

  2. link sqlite3.obj /dll /def:sqlite3.def /implib:sqlite3.lib

执行第二条命令时,发生错误:

  1. sqlite3.def : error LNK2001: unresolved external symbol sqlite3_column_database_name

  2. sqlite3.def : error LNK2001: unresolved external symbol sqlite3_column_database_name16

  3. sqlite3.def : error LNK2001: unresolved external symbol sqlite3_column_origin_name

  4. sqlite3.def : error LNK2001: unresolved external symbol sqlite3_column_origin_name16

  5. sqlite3.def : error LNK2001: unresolved external symbol sqlite3_column_table_name

  6. sqlite3.def : error LNK2001: unresolved external symbol sqlite3_column_table_name16

  7. sqlite3.def : error LNK2001: unresolved external symbol sqlite3_rtree_geometry_callback

  8. sqlite3.def : error LNK2001: unresolved external symbol sqlite3_table_column_metadata

  9. sqlite3.lib : fatal error LNK1120: 8 unresolved externals

在http://source.online.free.fr/Windows_HowToCompileSQLite.html找到了相关的资料。

在sqlite3.c中添加两个宏定义

  1. #define SQLITE_ENABLE_RTREE

  2. #define SQLITE_ENABLE_COLUMN_METADATA

保存后,重新执行命令

  1. cl sqlite3.c /c

  2. link sqlite3.obj /dll /def:sqlite3.def /implib:sqlite3.lib

即可编译成功


你可能感兴趣的:(编译sqlite3.dll时的问题)