如何编译18年前发布的sqlite-1.0.1

时间:2019-04-22 08:30:23

标签: sqlite legacy

我想通过阅读sqlite的源代码来研究它。我发现sqlite-1.0.1仅包含10,000多行代码,也许很容易阅读。但不幸的是,现代gcc无法编译sqlite-1.0.1。

wget "https://www.sqlite.org/src/tarball/e8521fc1/SQLite-e8521fc1.tar.gz"
tar xzvf SQLite-e8521fc1.tar.gz
mkdir bld && cd bld
../SQLite-e8521fc1/configure --prefix=/opt/sqlite-1.0.1 --with-tcl=no
make

我发布make时报告了

gcc -std=c89 -g -O2 -o lemon ../SQLite-e8521fc1/tool/lemon.c
In file included from ../SQLite-e8521fc1/tool/lemon.c:29:
/usr/lib/gcc/i386-redhat-linux/3.4.2/include/varargs.h:4:2: #error "GCC no longer implements <varargs.h>."
/usr/lib/gcc/i386-redhat-linux/3.4.2/include/varargs.h:5:2: #error "Revise your code to use <stdarg.h>."

我尝试在-std=c89中的gcc之后追加Makefile,但是没有用。

我特别安装了一个旧的Fedora Core版本3虚拟机来编译SQLite-1.0.1,但它看起来像Fedora 3中的gcc(gcc版本3.4.2 20041017(Red Hat 3.4.2-6.fc3))一样。对于18年前的代码而言,它仍然太现代了。

我发现一个check in,其中<varargs.h><stdarg.h>取代了,作者说,也许他是在1989年使用gcc来编译lemon.c

也许是非常老的gcc或Linux(在2000年之前)可以解决此问题,但是我该如何解决呢?

0 个答案:

没有答案