一 Golang执行流程分析
1 对源码先编译再执行,Go的执行流程如下图。
2 对源码直接执行 go run 源码,Go的执行流程如下图。
二 两种执行流程的区别
1 如果先编译生成了可执行文件,那么可以将该执行文件拷贝到没有 go 开发环境的机器商,仍然可以运行。
2 如果是直接 go run go源代码,那么如果要在另外一台机器上运行,那么另外一台机器也必须安装 go 开发环境,否则无法执行。
3 在编译时,编译器会将程序运行依赖的库文件包含在可执行文件中,所以,可执行文件变大了很多。
三 编译和运行说明
1 有了 go 源文件,通过编译器可将其编译成机器可以识别的二级制文件。
2 在源文件目录下,通过 go build 对 main.go 文件进行编译。可以指定生成可执行文件名,在windows下必须是 .exe 后缀。
E:\gocode\chapter02\homework01>go build -o mymain.exe main.go
E:\gocode\chapter02\homework01>dir
驱动器 E 中的卷是 Project
卷的序列号是 EC6B-A955
E:\gocode\chapter02\homework01 的目录
2021/04/01 17:58 <DIR> .
2021/04/01 17:58 <DIR> ..
2021/04/01 11:32 1,939,456 main.exe
2018/08/24 12:09 76 main.go
2021/04/01 17:58 1,939,456 mymain.exe
3 个文件 3,878,988 字节
2 个目录 104,062,472,192 可用字节
3 如果没有错误,没有任何提示,会在当前目录下会出现一个可执行文件(windows下是.exe,Linux下是一个可执行文件),该文件是二机制文件,也是可执行的程序。
4 如果程序有错误,编译时,会在错误的那行报错。有助于程序员调试错误。
5 运行有两种形式
1 直接运行生成的可执行Go程序,比如 main.exe
2 通过运行工具 go run 对源代码文件进行运行。