第一个二进制文件来自哪里?

时间:2012-03-14 14:21:12

标签: linux makefile

我不得不从源代码构建gnu make,原因太复杂,无法在此解释。

我注意到构建它我需要make命令本身,以传统的方式:

./configure
make install

那么如果我没有make二进制文件呢?第一个二进制文件来自哪里?

6 个答案:

答案 0 :(得分:4)

第一个gcc二进制文件来自同一个地方。

第一个make可能是使用shell脚本来创建的。在那之后,make会自己“制造”。

当平台变为“自托管”时,这是系统开发中的一项值得注意的成就。这就是平台可以自我构建。

像“make make”和“gcc gcc.c”这样的东西。

许多语言编写者将使用另一种语言(例如,C)创建他们的语言,当他们将其移动得足够远时,他们将使用原始的bootstrap编译器以原始语言编写新的编译器。最后,他们丢弃原件。

当天早些时候,一位朋友正在研究OS / 2的调试器,因为当时的多任务操作系统值得注意。他会调试他们调试调试器的时间,并找到一个bug。因此,他们会调试调试器调试调试器。这是一个新颖的概念,是计算和抽象的核心。

不可避免的是,当有人通过硬线键盘或其他开关键入某些东西以获得初始程序时,这一切都可以归结为。然后他们利用该程序做其他工作,而这一切都从那里开始增长。

答案 1 :(得分:3)

然后在AT& T的Stuart Feldman在第7版UNIX™时编写了make的源代码,并使用手动编译(或者可能是shell脚本)直到make工作足以用来建立自己。您可以在线找到第7版的UNIX Programmer's Manual,特别是1978年8月发表的make原始版本的原始论文。

答案 2 :(得分:2)

make只是一个便利工具。仍然可以手动或通过其他脚本工具调用ccld等。

答案 3 :(得分:0)

编译C程序不是生成可执行文件的唯一方法。第一个make可执行文件(或更值得注意的是C编译器本身)可以是例如汇编程序,或者它可以在机器代码中手动编码。它也可以在完全不同的系统上进行交叉编译。

答案 4 :(得分:0)

make的本质是它是运行某些命令的简化方法。

要制作第一个make,作者必须手动充当make,并运行gcc或任何可用的工具集,而不是让它自动运行。

答案 5 :(得分:0)

如果您正在构建GNU make,请在运行build.sh后查看源树中的configure

# Shell script to build GNU Make in the absence of any `make' program.
# build.sh.  Generated from build.sh.in by configure.