如果是对源码编译后,再执行,Go的执行流程如下图:

如果我们是对源码直接执行go run ,Go的执行流程如下图:

 

说明:两种执行流程方式的区别

(1)如果我们先编译生成了可执行文件,那么我们可以将该可执行文件拷贝到没有go开发环境的机器上,仍然可以运行

(2)如果我们是直接go run 的,那么如果要在另一个机器上这么运行,也需要go开发环境,否则无法执行。

(3)在编译时,编译器会将程序运行依赖的库文件包含在可执行文件中,所以,可执行文件变大了很多。