Linux下从sqlite3源码编译出sqlite3库及相关可执行程序

目录

[1. 下载sqlite3源码并编译](#1. 下载sqlite3源码并编译)

[2. 下载Tcl库并编译](#2. 下载Tcl库并编译)

[3. 再次编译sqlite源码](#3. 再次编译sqlite源码)


1. 下载sqlite3源码并编译

打开SQLite Download Page,滚动到页面的下面,找到源码量最大的那个(其它的估计也行,但源码最大的本人感觉功能最全,截至2024年1月5号,源码最大的为13.42MiB),即单击下图红色链接下载源码:

执行如下命令解压:

bash 复制代码
unzip sqlite-src-3440200.zip

执行如下命令,创建构建目录:

bash 复制代码
cd sqlite-src-3440200
mkdir build

执行如下命令,编译:

bash 复制代码
cd build
../configure
make -j8

如果报如下错误,则转到第2节进行操作:

bash 复制代码
sqlite-src-3440200/build/../tool/cktclsh.sh: tclsh: not found
ERROR: This makefile target requires tclsh 8.4 or later.
Makefile:773: recipe for target 'has_tclsh84' failed
make: *** [has_tclsh84] Error 1

2. 下载Tcl库并编译

打开Download Tcl/Tk Sources页面,点击如下红色框所示链接下载(本人下载的是zip格式的,你也可以选择其它格式的文件)

执行如下命令解压:

bash 复制代码
unzip tcl8613-src.zip 

执行如下命令,创建构建目录:

bash 复制代码
cd tcl8.6.13
mkdir build

执行如下命令,编译、安装:

bash 复制代码
cd build
../unix/configure
make -j8
sudo make  install

默认安装在:

bash 复制代码
/usr/local/lib

执行如下命令,设置tcl库的搜索目录:

bash 复制代码
sudo vi /etc/profile

在文件末尾加入如下库的搜索目录:

bash 复制代码
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

执行如下命令,以使库的搜索目录立刻在本终端有效:

bash 复制代码
source /etc/profile

或重启系统(对所有终端有效)

3. 再次编译sqlite源码

回到1节再次执行如下命令编译、安装:

bash 复制代码
make -j8

注意,不需要执行如下的安装命令:

bash 复制代码
sudo make install

执行完make,默认就安装到/usr/local/lib目录了,如下:

在build目录下生成了sqlite3可执行程序,如下:

执行如下命令,可以看看sqlite3的用法:

bash 复制代码
./sqlite3  -help

结果如下:

现在可以用sqlite3这个可执行文件来 创建数据库、建表等操作了。

相关推荐
无垠的广袤3 分钟前
【VisionFive 2 Lite 单板计算机】边缘AI视觉应用部署:人脸检测
linux·人工智能·python·opencv·开发板
Dola_Zou18 分钟前
如何用一套加密狗方案打通 Windows、Linux 与 macOS等,零成本实现跨平台交付?
linux·安全·macos·自动化·软件工程·软件加密
松涛和鸣27 分钟前
66、SPI驱动ADXL345加速度计
linux·运维·单片机·嵌入式硬件·ubuntu
无垠的广袤27 分钟前
【VisionFive 2 Lite 单板计算机】SoC 温度的 Home Assistant 物联网终端显示
linux·python·物联网
好学且牛逼的马36 分钟前
【Hot100|20-LeetCode 240. 搜索二维矩阵 II 】
linux·算法·leetcode
wenyi_leo42 分钟前
强大的claude code
linux·运维·服务器
zmjjdank1ng43 分钟前
Vim是什么?Vim和vi有什么关系
linux·编辑器·vim
嵌入小生00743 分钟前
数据结构基础内容 + 顺序表 + 单链表的学习---嵌入式入门---Linux
linux·数据结构·学习·算法·小白·嵌入式软件
hweiyu0043 分钟前
Linux 命令:join
linux
知无不研44 分钟前
Linux下socket网络编程
linux·运维·网络·后端·socket编程