SQLite_src_全套编译流程

〇、版本信息

ToolVersion
SQLite3.7.14
tcl8.5.9
ActiveTcl8.5
msys1.0

一、安装所需环境

本次编译所依据的流程是Sqlite源码文件夹中自带的ReadMe文件:

在这里插入图片描述


能看出来是在linux环境下的指令,所以我先去配置了一下环境,具体所需如下:

1. 安装mingw64

mingw64为windows提供了GCC编译器。如果你使用IDE是Clion,那么在一开始配置ToolChains的时候你应该已经下过它了(反正我是这样,除非你专门下了个Dev用人家的编译器…)

最后记得将bin文件夹添加到环境变量中即可。

2. 安装Tcl & ActiveTcl

编译sqlite需要tcl。
需要下载tcl源码是因为后面编译时需要用到里面的一些东西,而ActiveTcl是让Tcl全平台运行的一个脚本语言软件。注意配置环境变量。


3.安装msys

Minimal GNU system on Windows 是一个windows下小型的GNU环境,这也是我们本次编译Sqlite的控制台。

二、正式开始编译(无坑版)

  1. 打开msys,进入GUN控制台,cd进入Sqlite源码所在的文件夹根目录:
    (注意下划线的方向,与从文档路径中复制的相反。)

  2. 运行指令 ./configure,使配置文件生效,生成MakeFile和代码等。

  3. 先别急着make,先从tcl源码文件夹中拷贝generic目录到sqlite源码根目录中。

在这里插入图片描述

然后进入 ./src/tclsqlite.c 文件中,修改头文件引用。

# include "tcl.h"
// 修改其路径如下
# include "../generic/tcl.h"

  1. 放心大胆地make吧。运行指令make install.
    最后可能会报一个小Error(忘截图了),但暂时无所大谓,可以试着进行下一步。

  2. 此时运行sqlite源码根目录的sqlite.exe或在msys中运行指令sqlite3,都能进入sqlite> 中。
    运行指令 .show 来查看 SQLite 命令提示符的默认设置。

在这里插入图片描述

至此,sqlite3.7 编译成功。

三、编译Sqlite_3.7过程中的各种坑

运行./configure 让配置文件生效这一步没什么好说的,但紧接着make这一步有一个报错卡了很久:

在这里插入图片描述
make时报错提示缺失tcl.h文件。

一开始我以为是运行配置文件时出了些问题,它没有给创建这个头文件,于是回头看配置运行信息:

在这里插入图片描述

当时我安装的是最新的 tcl8.6,我以为是这版年代久远的源码没有适配到,于是重新安装了tcl8.5。
但再次配置,还是没检测到,也没有解决这个问题。

又经过一番查询,我感觉这个tcl.h应该不是前面配置文件生成的,而应该是一个某种途径里既存的一个文件,感觉比较难找,所以想直接试试下面的方法:

在这里插入图片描述

俗话说解决不了问题就解决提出问题的人嘛。。

结果把tclsqlite.c 删了,make时直接找不到这文件报错退出。应该是依赖关系比较多,直接这样删还是太莽了。并且我们之后阅读源码的过程中是肯定得用tcl的,所以还是得编译这块儿。


最后我下载了tcl源码,终于在里面找到了这个tcl.h…同时还不能只把这一个.h文件复制过去就了事,需要这个文件夹里所有关于tcl的.c文件和.h文件,所以需要将generic整个文件夹复制过去,而后改变头文件引用的路径。
至此tcl.h缺失问题解决。

但最后make结束时还是报了一个Error。虽然无伤大雅,但还是看怎么解决吧。

并且这次编译全程没用现代化ide如vs等等,感觉像是十多年前的解法。。今天借助ide可能在win下编译configure和makefile时能容易点?

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值