我被告知要构建二进制文件并这样执行。
go build hello-world.go
$ ls
hello-world hello-world.go
./hello-world
hello world
所以go build hello-world.go
获取人类可读的hello-world.go
文件并创建一个二进制文件。
我的两个问题是:
通常,编译的代码和直接可执行文件的文件的优点是什么?它不取决于您的OSX或任何其他依赖性吗?怎么来?
./hello-world
为什么执行创建的二进制。
- 关于编译语言(例如Golang)与解释语言(例如Ruby)有很多讨论需要使用解释器(额外层)。
- 所有二进制文件均可在同一操作系统和体系结构之间移植。这意味着,如果您在64位Linux体系结构上编译Golang应用程序,则无法在32位Linux体系结构上运行它。
- 这是在基于Linux和UNIX的系统上执行二进制文件的标准方法。如果二进制不在您的
$PATH
,则需要
./
前缀原因./hello-world执行创建的二进制文件,基于Shell脚本的概念。想想bash,每个bash文件作为 #!/bin/bash
表示,以指示它是外壳引擎可执行的外壳脚本。使此文件可通过权限执行,允许使用文件执行。/file.sh
,因为解释器被触发。在这种情况下,配置为以相同的方式行动。Brian Kernighan帮助创建了Unix,他还参加了Golang团队,因此文件执行的概念在建筑上烘烤了。
编译代码的优点,在运行时启用静态分析,GO是一个强烈的langauge。这是因为编译的代码允许进行大量优化。