如何使用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是全文索引模块

相关文章
|
4月前
|
API 数据库 C语言
【C/C++ 数据库 sqlite3】SQLite C语言API返回值深入解析
【C/C++ 数据库 sqlite3】SQLite C语言API返回值深入解析
221 0
|
3月前
|
Linux 数据库管理 Python
CentOS7编译安装Python3.10(含OpenSSL1.1.1安装),创建虚拟环境,运行Django项目(含sqlite版本报错)
CentOS7编译安装Python3.10(含OpenSSL1.1.1安装),创建虚拟环境,运行Django项目(含sqlite版本报错)
473 4
|
28天前
|
Linux 测试技术 数据库
解决django与sqlite3不兼容报SQLite 3.9.0 or later is required (found 3.8.2)错的问题
解决django与sqlite3不兼容报SQLite 3.9.0 or later is required (found 3.8.2)错的问题
62 2
|
4月前
|
SQL 关系型数据库 数据库
Python中SQLite数据库操作详解:利用sqlite3模块
【4月更文挑战第13天】在Python编程中,SQLite数据库是一个轻量级的关系型数据库管理系统,它包含在一个单一的文件内,不需要一个单独的服务器进程或操作系统级别的配置。由于其简单易用和高效性,SQLite经常作为应用程序的本地数据库解决方案。Python的内置sqlite3模块提供了与SQLite数据库交互的接口,使得在Python中操作SQLite数据库变得非常容易。
|
4月前
|
数据库管理
Mac检出svn checkout报错 svn: E200030: SQLite 编译为 3.39.5,但是运行于 3.39.4
Mac检出svn checkout报错 svn: E200030: SQLite 编译为 3.39.5,但是运行于 3.39.4
179 0
|
4月前
|
JSON Linux API
一个C++版本的Sqlite3封装--SmartDb
一个C++版本的Sqlite3封装--SmartDb
58 0
|
4月前
|
数据库连接 API 数据库
SQLite3 数据库 C语言API 打开函数sqlite3_open 详解
SQLite3 数据库 C语言API 打开函数sqlite3_open 详解
173 0
|
4月前
|
编译器 数据处理 C++
Visual Studio配置并编译C++环境下GDAL库、SQLite环境与PROJ库的方法
Visual Studio配置并编译C++环境下GDAL库、SQLite环境与PROJ库的方法
246 1
|
4月前
|
SQL 关系型数据库 MySQL
mysql转sqlite3实战+部署sqlite3应用
mysql转sqlite3实战+部署sqlite3应用
310 0
|
4月前
|
XML 数据库 数据安全/隐私保护
Android App规范处理中版本设置、发布模式、给数据集SQLite加密的讲解及使用(附源码 超详细必看)
Android App规范处理中版本设置、发布模式、给数据集SQLite加密的讲解及使用(附源码 超详细必看)
63 0