"./configure; make; make install" 有什么作用?

dav*_*vid 27 installation makefile make

有什么作用./configure?为什么make那么make install?它怎么知道在哪里libs?(它们都在那里并已加载,但无法找到它们。)libs如果编译器应该编译,为什么需要?

hyt*_*omo 31

./configure
Run Code Online (Sandbox Code Playgroud)

告诉您是否已准备好构建应用程序。它将检查您是否拥有构建应用程序所需的一切,如果发现任何严重错误,它将通知您。

make
Run Code Online (Sandbox Code Playgroud)

构建(编译)源代码。编译器编译代码,但是,大多数时候,代码不能独立存在,它需要安装外部库(通常由 ubuntu 包提供)。在此步骤之后,将创建您尝试安装的此特定应用程序的可执行文件。

sudo make install
Run Code Online (Sandbox Code Playgroud)

将应用程序文件所需的所有内容移动到适当的系统目录。make因为应用程序的可执行文件已经创建并且可以移动到适当的系统目录(例如/usr/bin/)以供以后使用,所以这必须在之后完成。

库是必要的,因为它们允许程序员使用其他人编写的代码来实现某些事情。即如果我想在我的程序中进行一些磁盘格式化,我可以使用某人已经编写的库来进行格式化,而我只需要让我的程序调用这些库。如果那个人在他们的库中发现问题,他们可以修复它,它也会在我的程序中修复它。这就是开源软件可以写得如此之快且如此稳定的原因。