如何在VS 2003下编译SQLite

前端之家收集整理的这篇文章主要介绍了如何在VS 2003下编译SQLite前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

如何在VS 2003下编译sqlite

作者:林轩 来源:
www.sqlite.com.cn

下载

下载 sqlite_source.zip 文件并解压缩. 注意不要下载 .tar.gz 格式压缩的文件,因为它缺少Windows平台所需要的预编译头文件.

创建一个 DLL 工程

1. 文件 > 新建 > 工程

2. 选择创建一个 Visual C++ Win32工程.

3. 选择 "Win32 Project" 工程模版.

4. 输入工程的名字,然后点击完成.

5. 在工程的向导页中选择工程的类型为 "Win32 DLL",并且把创建一个空项目的复选框钩上. 单击完成,这样你就创建了一个空的 DLL 工程.

sqlite 的源文件添加到工程当中去

7. 工程 > 添加现有项

8. 把你解压出来的除去 tclsqlite.c 和 shell.c 两个文件之外的所有 .c 和 .h 文件添加到工程中去.
注意:如果你添加了tclsqlite.c和shell.c文件,则你必须要添加预定义宏 NO_TCL:
a) 点击工程 -> 属性,转到 C/C++ 项然后选择预处理器
b) 在预处理器定义中加上 NO_TCL 并以分号分隔

Make a .DEF file

9. 把源代码包中的 .def 文件放到工程所在的目录中. 该文件在 2.x.x 版的时候叫 sqlite.def. 在 3.0.x 版之后改为 sqlite3.def.

10. 把 sqlite[3].def 添加到工程中.

11. 选择 工程 > 属性中的链接器,然后找到"输入"这一项. 在 "模块定义文件" 中输入 sqlite[3].def. 注意: 你需要在 Debug 和 Release 中都输入该项才行.

注意: 为了生成其它程序链接 sqlite[3].dll 的 lib 文件,你需要添加一个生成后事件. 在工程的属性中找到生成事件这一项,然后在生成后事件中的命令行里加上"LIB /DEF:<path>/sqlite[3].def",记得这也是要在 debug 和 release 中都要写上的,命令行中的 <path> 就是sqlite[3].def所在的绝对路径.

在编译 3.3.7 版的时候(也许其它的版本也需要),还需要做一个额外的步骤:
把工程的当前目录添加到项目的附加包含目录当中,具体的做法是:
在工程 > 属性的 C/C++ 选项中的 "常规",然后在 "附加包含目录中" 输入 "."(一个点表示当前目录).

12. 编译!

VS 2003的工程文件

如何编译 sqlITE.EXE 命令行程序

如果想编译出 sqlite.exe 命令行程序,则需要做一些设置上的改变. 首先创建工程的时候应该选择"Win32 控制台程序". 然后在往工程里添加文件的时候把 shell.c 也添加进去. 并且不要在加入 .DEF 文件.

sqlite2 的导出文件.


EXPORTS sqlite_open sqlite_close sqlite_exec sqlite_last_insert_rowid sqlite_error_string sqlite_interrupt sqlite_complete sqlite_busy_handler sqlite_busy_timeout sqlite_get_table sqlite_free_table sqlite_mprintf sqlite_vmprintf sqlite_exec_printf sqlite_exec_vprintf sqlite_get_table_printf sqlite_get_table_vprintf sqlite_freemem sqlite_libversion sqlite_libencoding sqlite_changes sqlite_create_function sqlite_create_aggregate sqlite_function_type sqlite_user_data sqlite_aggregate_context sqlite_aggregate_count sqlite_set_result_string sqlite_set_result_int sqlite_set_result_double sqlite_set_result_error sqliteMalloc sqliteFree sqliteRealloc sqlite_set_authorizer sqlite_trace sqlite_compile sqlite_step sqlite_finalize sqlite_progress_handler sqlite_reset sqlite_last_statement_changes

原文链接:https://www.f2er.com/sqlite/203221.html

猜你在找的Sqlite相关文章