如何执行这个Go二进制文件?

时间:2017-12-28 23:10:00

标签: go

我被告知要构建一个go二进制文件并像这样执行它。

go build hello-world.go
$ ls
hello-world hello-world.go

./hello-world
hello world

因此go build hello-world.go采用人类可读的hello-world.go文件并创建二进制文件。

我的两个问题是:

  1. 通常,编译代码和可直接执行的文件有什么好处?是不是它不依赖于您的OSX或任何其他依赖项?怎么来的?

  2. 为什么./hello-world执行创建的二进制文件。

2 个答案:

答案 0 :(得分:0)

./hello-world执行创建的二进制文件的原因是基于shell脚本的概念。将bash,每个bash文件视为#!/bin/bash,以表明它是shell引擎可执行的shell脚本。通过权限使该文件可执行,允许使用。/file.sh执行文件,因为解释器被触发。在这种情况下,配置为以相同的方式行事。 Brian Kernighan帮助创建了UNIX,他也是Golang团队的成员,因此文件执行的概念在架构上得到了体现。

编译代码的优点是,在运行时启用静态分析,Go是一种强类型语言。这是因为编译后的代码允许进行大量优化。

答案 1 :(得分:0)

  1. 关于编译语言(例如Golang)和解释语言(例如Ruby)的讨论很多,但一般来说,编译语言更快,因为编译阶段优化了代码,并且因为目标机器本身可以运行程序而不需要需要使用解释器(额外的层)。
  2. 所有二进制文件都可在同一操作系统和体系结构之间移植。这意味着如果您在64位Linux体系结构上编译Golang应用程序,您将无法在32位Linux体系结构上运行它。
  3. 这是在基于Linux和Unix的系统上执行二进制文件的标准方法。如果二进制文件不在您的./
  4. 中,则需要$PATH前缀