Linux 从头开始​​

Linux 从头开始​​

我目前正在使用 Linux From Scratch。我下载了一些软件包。我使用“tar”命令解压缩它们,并在解压的软件包中执行以下操作:

  1. 配置
  2. 制作
  3. 进行测试
  4. 进行安装

还有一件事,什么是 makefile?

请向我解释这些命令的用途,特别是就 LFS 而言。提前感谢。

答案1

我(有点)知道它的作用,但我不确定我是否知道如何解释。

基本上,通过您提到的命令序列,您可以用源代码(即用编程语言编写的代码)创建二进制可执行形式(程序、库)的东西,并将其安装在您的操作系统中(将其移动到适当的文件夹,设置配置文件等)。

makefile 是 make 命令使用的文本文件。它有助于(自动)执行任务。单个 makefile 可能包含 make 要执行的多个任务或操作的信息。如果没有 makefile,您将不得不执行许多复杂的手动步骤才能完成任务。

“配置”:(解释取自这里) 检查将要安装软件的机器的一些详细信息。此脚本检查系统中是否存在大量依赖项。为了使特定软件正常工作,可能需要您的机器上已经存在很多东西。如果您的系统缺少任何主要要求,则 configure 脚本将退出,并且您无法继续安装,直到您获得那些必需的东西。否则,它会创建 Makefile 以供下一步使用。

不带参数的“make”:指示 make 执行 makefile 中的默认操作(规则)。这通常会编译、链接并生成您要创建的二进制文件(即程序或库)。这通常涉及将源代码转换为目标文件(通常具有扩展名.o)并将它们链接到最终的二进制文件(对于 Linux 程序,通常没有扩展名;对于 Linux 库,通常具有.so.a扩展名)。我不确定这些步骤,因为我是一名 Java 程序员,我们不经常执行这些步骤)。

“make test”:对该二进制文件执行测试。

“make install”:基本上将二进制文件移动到正确的文件夹位置。

这个解释当然还可以有很多改进,我只是想让你了解整个过程。

这个简短的教程可能会提供更多信息。

答案2

使用 aMakefile可以让开发人员和最终用户的工作更加轻松。基本上,它是一份关于如何构建特定软件的备忘单。对于简单的“Hello world”,ag++ hw.cpp -o hello_world就可以工作。但是,当您拥有更复杂的软件时,通常必须在构建 A 部分之前构建 B 部分,一旦完成这两个部分,就可以构建 C 部分。手动输入这些内容 - 以及插入包含库的路径、临时输出文件、最终安装路径等(通常在configure运行脚本时确定) - 可能会导致错误。

相关内容