sqlite3 windows,sqlite3源代码

  sqlite3 windows,sqlite3源代码

  好久没写博客了,最近又开始写点东西了。

  最近正好需要用SQLite3数据库,就自己研究了一下。这真的是个好东西,所有开源的东西都是好的。

  好了,言归正传。相信很多人用SQLite3源代码编译还是有很多麻烦的,网上找的也不是很全。

  下面,我就写自己的编译方法。

  首先,从http://www.sqlite.org/download.html, SQLite的官方网站下载最新的源代码。最新版本是v 3 . 7 . 11(2012年3月25日星期日)。

  需要下载的源代码如下:

  SQLite-merging-3071100.zip,SQLite-dll-win32-x86-3071100 . zip,sqlite-src-3071100.zip,SQLite-预处理-3071100 . zip .

  1.将其编译成应用程序(*。exe),以便在命令行模式下进行调试。

  (1)创建一个Win32控制台应用程序为空的项目,项目名为SQLite

  (2)将SQLite-merging-3071100 . zip解压后的shell.c,sqlite3.c,sqlite3.h,sqlite3ext.h添加到项目中,直接编译生成sqlite.exe,可以在命令行测试。

  2.编译生成动态链接库(*。dll)在Win32平台下。

  (1)创建一个Win32项目,选择一个空的Dll项目,项目名称为SQLite _ win32 _ dll

  (2)将SQLite-merging-3071100 . zip解压缩的sqlite3.c、sqlite3.h和sqlite3ext.h以及SQLite-DLL-Win32-x86-3071100 . zip解压缩的sqlite3.def模块定义文件添加到项目中,将SQLITE_ENABLE_COLUMN_METADATA添加到预处理器中,编译后即可生成DLL。但此时只生成了sqlite_win32_dll.dll文件,没有生成对应的导入库(sqlite_win32_dll.lib)文件。具体方法如下:

  修改sqlite3.c文件中SQLITE_API的宏定义(当前版本在sqlite3.c的第26行),修改为

  # define SQLITE_API被修改为

  # define SQLITE _ API _ _ declspec(dll export)

  编译生成sqlite_win32_dll.dll和SQLite _ Win32 _ dll.lib。

  或者直接将sqlite3.def添加到链接器输入模块定义文件中(推荐)。

  3.编译生成动态链接库(*。WinCE平台下的dll)。

  (1)创建一个智能设备项目,选择对应的SDK,然后选择一个名为SQLite _ WINCE的空Dll项目;

  (2)SQLite-src-3071100 . zip解压后,src目录下的所有代码(test*除外。*、tclsqlite.c、lempar.c、shell.c)复制到项目目录,ext\rtree目录下的rtree.c、rtree.h、sqlite3rtree.h。将SQLite-DLL-Win32-x86-3071100.zip解压后的sqlite3.h.def模块定义文件添加到项目中,并从SQLite-预处理-3071100 . zip中解压关键字hash.h、opcodes.c、opcodes.h、parse.c、parse.h、sqlite3。

  (3)在C/C —— Advanced 3354 Compile AS of engineering properties中选择TC,在C/C-preprocessor中添加SQLITE_ENABLE_COLUMN_METADATA,进行编译;

  (4)此时,将报告一个连接错误。

  1 os_win.obj:错误LNK2019:函数winShmSystemLock中引用了未解析的外部符号osUnlockFileEx

  1 date.obj:错误LNK2019:函数osLocaltime中引用了未解析的外部符号localtime_s

  谷歌搜索关键词“UnlockFileEx winShmSystemLock”后,http://www.sqlite.org/src/info/13ed106c8c279422,官网解释了第一个链接错误。比较完代码后,可以将osUnlockFileEx改为UnlockFileEx。当前版本位于(os_win.c第2373行)。

  对于第二个链接错误,用_localtime64_s替换date.c文件中的localtime_s,并重新编译它。

  (5)此时只生成了sqlite_wince.dll文件,而没有生成对应的导入库(sqlite_wince.lib)文件。具体方法如下:

  修改sqlite3.h文件中SQLITE_API的宏定义(当前版本在sqlite3.h的第53行),修改为

  # define SQLITE_API被修改为

  # define SQLITE _ API _ _ declspec(dll export)

  编译生成sqlite_win32_dll.dll和SQLite _ Win32 _ dll.lib。

  或者直接将sqlite3.def添加到链接器输入模块定义文件中(推荐)。

  注意:如果需要将sqlite3.h头文件提供给他人,编译后将宏定义改回原来的样子。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • windows强制结束进程命令,cmd强制关闭进程命令
  • windows下的python opencv安装攻略,ubuntu安装opencv-python
  • winserver2016更改远程桌面端口,winserver2012修改远程桌面端口,Windows Server 修改远程桌面端口的实现
  • winserver2012配置iis,win2012 iis配置,Windows Server 2016服务器IIS配置的详细步骤(图文)
  • windows钩子函数,windows钩子基础教程
  • windows钩子函数,windows钩子基础教程,Windows的钩子机制详解
  • windows批处理命令,windows批处理官方教程
  • windows批处理命令,windows批处理官方教程,windows批处理命令教程
  • windows下怎么安装perl,linux安装perl环境
  • windows下怎么安装perl,linux安装perl环境,Windows10下安装配置 perl 环境的详细教程
  • windows下cmd中切换路径与目录查看,cmd怎么切换路径到文件夹
  • windows下cmd中切换路径与目录查看,cmd怎么切换路径到文件夹,cmd命令打开及切换目录路径的实现
  • windowsandroid手机版下载,windowsandroid安装apk
  • windowsandroid手机版下载,windowsandroid安装apk,WindowsAndroid 安装教程详解
  • windows2007下载,win2008server下载
  • 留言与评论(共有 条评论)
       
    验证码: