如何执行此操作二进制



我被告知要构建二进制文件并这样执行。

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为什么执行创建的二进制。

  1. 关于编译语言(例如Golang)与解释语言(例如Ruby)有很多讨论需要使用解释器(额外层)。
  2. 所有二进制文件均可在同一操作系统和体系结构之间移植。这意味着,如果您在64位Linux体系结构上编译Golang应用程序,则无法在32位Linux体系结构上运行它。
  3. 这是在基于Linux和UNIX的系统上执行二进制文件的标准方法。如果二进制不在您的$PATH
  4. ,则需要./前缀

原因./hello-world执行创建的二进制文件,基于Shell脚本的概念。想想bash,每个bash文件作为 #!/bin/bash表示,以指示它是外壳引擎可执行的外壳脚本。使此文件可通过权限执行,允许使用文件执行。/file.sh,因为解释器被触发。在这种情况下,配置为以相同的方式行动。Brian Kernighan帮助创建了Unix,他还参加了Golang团队,因此文件执行的概念在建筑上烘烤了。

编译代码的优点,在运行时启用静态分析,GO是一个强烈的langauge。这是因为编译的代码允许进行大量优化。

最新更新