如何使用VC6编译sqlite3(版本:sqlite-source-3_6_22)

简介: 如何使用VC6编译sqlite-source-3_6_22 引言: 小老虎多多使用VC6编译sqlite-source-3_6_22的编译方法。 一.创建Win32动态链接库工程 1.打开VC新建一个“Win32 Dynamic-Link Library”工程,命名为:sqlite3; ...

如何使用VC6编译sqlite-source-3_6_22

引言:

小老虎多多使用VC6编译sqlite-source-3_6_22的编译方法。

.创建Win32动态链接库工程

1.打开VC新建一个“Win32 Dynamic-Link Library”工程,命名为:sqlite3

2在接下来的对话框中选择"An empty DLL project", FINISH->OK

.将文件添加进工程

sqlite-source-3_6_22里的文件添加到sqlite3工程中:

1.sqlite-source-3_6_22下的所有*.C文件添加在工程的Source File

2.sqlite-source-3_6_22下的所有*.h文件添加在工程的Source File

.F7进行编译

出现如下错误:

d:/learn/sqlite3/tclsqlite.c(28) : fatal error C1083: Cannot open include file: 'tcl.h': No such file or directory

说明:tclsqlite.c用于生成基于TCLAPI,如果要编译,这需要另外下载tcl.hshell.c用于生成命令行模式的sqlite.exe

.删除掉文件tclsqlite.c

再此处去掉文件tclsqlite.c,不让此文件参加编译,F7重新编译

出现如下错误

fts3_tokenizer.obj : error LNK2005: _sqlite3_api already defined in fts3.obj

rtree.obj : error LNK2005: _sqlite3_extension_init already defined in fts3.obj

rtree.obj : error LNK2005: _sqlite3_api already defined in fts3.obj

.编译通过方案

1.编译通过的方案一:

添加编译选项SQLITE_CORE SQLITE_ENABLE_FTS3

以及SQLITE_ENABLE_RTREE,再次按F7进行编译

 

2.编译通过的方法二:

2.1添加编译选项

如果仅仅添加SQLITE_ENABLE_FTS3和以及SQLITE_ENABLE_RTREE两个编译选项,不添加SQLITE_CORE编译选项;

2.2修改文件sqlite3ext.h

在文件sqlite3ext.h

#define SQLITE_EXTENSION_INIT1     const sqlite3_api_routines *sqlite3_api = 0;

行下面添加,添加如下内容:

#define EXTERN_SQLITE_EXTENSION_INIT1     extern const sqlite3_api_routines *sqlite3_api = 0;

2.3修改fts3.cfts3_tokenizer.c两个文件

fts3.cfts3_tokenizer.c2个文件里,SQLITE_EXTENSION_INIT1修改为EXTERN_SQLITE_EXTENSION_INIT1,具体如下:

#ifndef SQLITE_CORE

  #include "sqlite3ext.h" 

  EXTERN_SQLITE_EXTENSION_INIT1

#else

  #include "sqlite3.h"

#endif

2.4修改文件rtree.c

rtee.c文件的里,SQLITE_EXTENSION_INIT1修改为extern const sqlite3_api_routines *sqlite3_api即可,具体如下:

#ifndef SQLITE_CORE

  #include "sqlite3ext.h" 

  extern const sqlite3_api_routines *sqlite3_api; 

#else

  #include "sqlite3.h"

#endif

 

附注说明:

1. rTree.c是建立数据库R树索引的模块;

2. fts3*.c是全文索引模块

相关文章
|
23天前
|
API 数据库 C语言
【C/C++ 数据库 sqlite3】SQLite C语言API返回值深入解析
【C/C++ 数据库 sqlite3】SQLite C语言API返回值深入解析
163 0
|
4天前
|
SQL 关系型数据库 数据库
Python中SQLite数据库操作详解:利用sqlite3模块
【4月更文挑战第13天】在Python编程中,SQLite数据库是一个轻量级的关系型数据库管理系统,它包含在一个单一的文件内,不需要一个单独的服务器进程或操作系统级别的配置。由于其简单易用和高效性,SQLite经常作为应用程序的本地数据库解决方案。Python的内置sqlite3模块提供了与SQLite数据库交互的接口,使得在Python中操作SQLite数据库变得非常容易。
|
4月前
|
编译器 数据处理 C++
Visual Studio配置并编译C++环境下GDAL库、SQLite环境与PROJ库的方法
Visual Studio配置并编译C++环境下GDAL库、SQLite环境与PROJ库的方法
|
10月前
|
开发者 C++ 数据库管理
SQLite3源码下载与编译(开发环境:Win10+VS2022)
SQLite3源码下载与编译(开发环境:Win10+VS2022)
815 0
|
SQL 关系型数据库 MySQL
本地数据库 sqlite3 编译和使用
本地数据库 sqlite3 编译和使用
285 0
本地数据库 sqlite3 编译和使用
|
Linux 数据库管理
LINUX下载并编译sqlite
LINUX下载并编译sqlite
53 0
Package sqlite3 was not found in the pkg-config search path.add the directory containing `sqlite3.pc
Package sqlite3 was not found in the pkg-config search path.add the directory containing `sqlite3.pc
143 0
|
SQL 数据库 数据库管理
sqlite3——sqlite3应用相关函数
sqlite3——sqlite3应用相关函数
228 0
|
SQL 数据可视化 数据库
玩转SQLite3:SQLite图形软件基本操作
上篇文章介绍了sqlite3命令行操作来创建数据库与表,该方法需要有一定的数据库基础知识。 本篇,使用图形化的工具,来实现同样的功能,并且这些方式,不需要熟悉SQL命令。
玩转SQLite3:SQLite图形软件基本操作
|
SQL 数据库管理 Windows
Windows环境VS2017,如何编译得到SQLite的sqlite3.lib文件?已知dll文件,求lib文件
Windows环境VS2017,如何编译得到SQLite的sqlite3.lib文件?已知dll文件,求lib文件
326 0