我已经成为一名CS学生了一段时间,似乎我(或我的许多朋友)从来没有理解在制作,安装等方面的幕后发生的事情.
纠正我,但是要编译一组文件?
什么是"在Windows上安装程序到计算机"是什么意思,因为当我使用不同的语言(如java或perl)编码时,我们不会安装我们编写的内容.我们将编译(如果没有,解释语言)并运行它.那么,为什么像Skype这样的程序需要"安装"?
任何人都可以澄清这个吗?我觉得这是我作为程序员需要知道的事情.
Make是一个构建系统 ,它只是编写程序所需步骤的脚本.make具体可以与任何东西一起使用,但通常用于编译C或C++程序.它简化并创建了一种标准方式,供程序员编写程序编写脚本,以便轻松构建和安装
你看,如果你的程序是一个简单的源文件程序,那么使用make可能是一种矫枉过正,因为编译最简单的c程序就像
gcc simpleprogram.c -o simpleprogram.out
Run Code Online (Sandbox Code Playgroud)
但是,随着软件规模的扩大,其复杂性不断增加,以及需要构建软件的复杂程度也在不断增加.例如,您可能需要确定每个库的版本安装在其中您正在编译中的计算机,则可能需要您的程序编译后运行一些测试,以确定它是否正常工作,或者您可能要自动下载一些您的程序具有的依赖关系.
大多数构建的软件最终需要混合使用这些任务.因此,他们不是重新发明轮子,而是使用一个允许编写脚本的构建系统.如果您熟悉Java(您提到过)一个与make相当的构建系统,但在Java世界中使用的是Apache Ant.
好吧,我们假设您使用了"make"命令而不是"make install"."make"命令通常用于准备编译程序,并编译它.但是,一旦编译了程序,您所拥有的只是编译程序所在目录中的可执行文件.程序,其文档及其配置文件尚未放入所有用户使用所需的相应目录中它.这就是"make install"的用途.Make install接受与您刚刚编译的程序相关的所有文件,并将所述文件放在适当的目录中,以便每个人都可以使用它,以便根据您的操作系统将每个组件放在预期的目录中.