POP Article V2.0 设为主页
收藏本站
首 页交流论坛留 言
您现在的位置:首 页 >> 开发文档 >> 官方文档汉化 >> 查看文章
如何在VS 2003下编译SQLite
作者:林轩  来源:www.sqlite.com.cn  时间:2006-10-17  【 字体: 】 〖 双击滚屏 〗

下载

下载 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
浏览次数:   【 打 印 】【 关 闭
上一篇:SQLite3 C/C++ 开发接口简介(API函数) 三
下一篇:Sqlite中文排序研究(1)
 论坛登陆
用户名:
密  码:
验证码: 
Cookie 选项:
正常登陆 隐身登陆
   
没有注册?
 文章搜索
 推荐文章
 酷站推荐
 热门文章
 网站统计
关于我们 | 网站地图 | 联系我们 | 网站历史 | 友情链接 | TOP
Copyright© 2006 Sqlite中文社区  程序开发: mistletoe  站长: 林轩 陈文成