当我构建一个 Go 二进制文件时,我通常会做这样的事情:
go build -ldflags "-X main.basedir somevar" -o mybuilddir/bin/myfile mypackage/main"
这将构建二进制文件并将其放置在自定义目录中。但这不会将“中间”包文件保留在 之下pkg/
,这将加快下一次编译运行的速度。
解决方案是go install
,但我无法指定输出目录。似乎可以用 设置二进制目录GOBIN
,但我无法指定可执行文件的名称(总是main
)。
这个问题的可能解决方案是什么?
自定义目标目录
自定义名称(不是main
)
保留中间生成的包文件 ( .a
)
这是src
目录GOPATH
:
GOPATH/src$ tree
.
└── mypackage
├── packagea
│ └── packagea.go
├── packageb
│ └── packageb.go
└── main
└── mypackage.go
使用go install,包文件 ( .a) 是在 中创建的$GOPATH/pkg,使用go build,我在.a任何地方都找不到这些文件。
相关分类