go

go build and archives

Posted by keming on August 28, 2021

没开mod的时候

  • 由于是GOPATH模式,GOPATH路径下的三个目录非常清楚
    • src:源码
    • pkg: archive文件
    • bin: 可执行文件
  • 新版已经不推荐这种模式了,因为没法做版本管理,所以基于旧版,install会额外的生成archive文件到pkg里面。

打开mod之后

  • 无论是go build 还是 go install,你都看不见当前mod的archive文件了!
  • 依赖的东西放在GOPATH/pkg/mod下面
  • 调用go build -x -work(-x 打印执行中的代码,-work保留临时文件夹)可以看到:
    • 编译后的.a文件被放到了$WORK下的临时文件目录1
    • 结束后会将其拷贝到另一个临时文件目录2,并改名为一串数字,不叫xxx.a
    • 销毁临时文件目录1
  • 临时文件目录2下的archive文件,可以被其他package引用