eyo*_*100 5 compiling make gentoo lfs
我使用 Gentoo 作为我的主要家庭桌面操作系统。我从 2004 年开始。我很欣赏emerge用于管理基于源的操作系统的命令。我不时检查其他发行版,但我特别喜欢Linux From Scratch - 对于那些不知道的人。诚然,我从来没有读过整本书,因为使用 Gentoo 在这方面已经把我宠坏了。我认为 Gentoo 是 LFS + 包管理器。我终于决定要完成这本书,所以我将 XUbuntu 安装在 VM 上以模拟新事物并...
我正在关注版本 3 - Systemd of CLFS 的候选发布版本,它在第 6 章 - 临时系统 - Make 中找到了我。 如果用户需要make编译某个版本的 Make,就会出现鸡和蛋的因果关系问题 这将我引向我的下一个逻辑问题。
当Stuart Feldmanmake于 1976 年创建时,如果他们的操作系统不包含操作系统相关的,计算公众如何编译他的程序make?我是否假设下面的维基百科文章适用于每个操作系统?
他是否必须打包 make 以包含 make 的每个操作系统相关版本才能完成 1?(见下文)
如果我需要程序 A,但它只能在 OS A 上编译,那么我是否必须购买 OS A,即使我使用的是 OS B? (如果可能,请在此处忽略 Windows。)
更新
维基百科说:
在 Make 引入之前,Unix 构建系统最常见的是由操作系统相关的“make”和“install”shell 脚本组成,这些脚本伴随着它们的程序源。能够将针对不同目标的命令组合到一个文件中,并能够抽象出依赖跟踪和存档处理,这是朝着现代构建环境方向迈出的重要一步。
另外,请注意,我在这里寻找一些历史观点,因为我出生于 1976 年。
Make只是为了方便。没有它你也可以构建软件,只是更难。
当您运行make以构建某些东西时,它会向您显示它正在运行的命令。您可以手动运行这些命令并获得相同的效果。
$ echo "int main() {}" > test.c
$ make test
cc test.c -o test
Run Code Online (Sandbox Code Playgroud)
它创建了一个名为test.
我只需执行以下操作即可获得相同的结果:
cc test.c -o test
Run Code Online (Sandbox Code Playgroud)
如果 make 不存在,您可以指示用户cc手动运行此命令,或者您可以分发一个 shell 脚本,并指示他们运行该脚本。
| 归档时间: |
|
| 查看次数: |
229 次 |
| 最近记录: |