为什么Go程序需要运行时支持

为什么Go程序需要运行时支持,go,goinstall,Go,Goinstall,据说Golang是编译语言,但编译是什么意思?如果golang应用程序被编译成机器代码,为什么我不能只分发二进制文件(当然是在相应的arch和平台上),而不是去安装东西?一旦编译了二进制文件,就可以将其分发到具有相同体系结构的机器上开始安装,开始运行,等只是编译所必需的 不只是一样,而是目标。我在任何一台机器上构建并部署在四到五个不同的系统上。go install/run与编译无关。@Erikwgo install编译并安装,这是构建非主程序包的方式运行在临时位置编译,然后执行生成的二进制文件。

据说Golang是编译语言,但编译是什么意思?如果golang应用程序被编译成机器代码,为什么我不能只分发二进制文件(当然是在相应的arch和平台上),而不是
去安装
东西?

一旦编译了二进制文件,就可以将其分发到具有相同体系结构的机器上<代码>开始安装,
开始运行,
等只是编译所必需的

不只是一样,而是目标。我在任何一台机器上构建并部署在四到五个不同的系统上。
go install/run
与编译无关。@Erikw
go install
编译并安装,这是构建非主程序包的方式<代码>运行在临时位置编译,然后执行生成的二进制文件。@JimB哦,是这样的。我想的是,
install
不是编译所必需的<代码>开始构建就足够了。但是没有用,因为在命令完成后删除$WORK时,编译后的包不会被安装,因此会被删除。Go的一个独特功能是API作为源代码分发,而不是作为
.jar
.dll
.so
或其他二进制包分发。这是可行的,因为Go编译速度很快。一下子,它就非常简单地解决了可移植性问题,而不需要借助虚拟机(JVM等)。(次要的)缺点是,至少可以说,生成封闭源代码的API很棘手。