通过 go build -x 可以查看整个打包过程。
- go build 当前平台是直接通过 link pkg 下的 .a 文件
- GOOS= linux go build 其他平台,则是通过先将 src 下的源码编译,打成 symabis 文件,放到 GOCACHE 目录下
- .a 文件是 arch 压缩文件,是常用的静态链接库搜使用的格式
- go tool compile ,如果不指定参数他会生成一个 .o 文件,其实他是一个 .a 文件(被坑很久),估计是个 bug,或者其他考虑
2021年11月15日11:53:25
前面说的不对,go tool compile 默认会生成一个 .o 文件,需要加一个参数 -pack,生成一个 .a 文件,.a 是压缩文件不仅里面包含一个 .o 文件其实还有一个 PKGDEF文件,这个其实是一个头文件,相当于 c 语言里面的 .h 文件。
网友评论