When I build a Go binary, I usually do something like this:
go build -ldflags "-X main.basedir somevar" -o mybuilddir/bin/myfile mypackage/main"
this builds the binary and places it in a custom directory. But this doesn't keep the "intermediate" package files beneath pkg/
, which would speed up the next compilation runs.
The solution would be go install
, but I cannot specify an output directory. It seems to be possible to set the binary directory with GOBIN
, but I am unable to specify the name of the executable (always main
).
What is a possible solution to this problem?
- Custom destionation directory
- Custom name (not
main
) - Keep intermediate generated package files (
.a
)
This is the src
directory of GOPATH
:
GOPATH/src$ tree
.
└── mypackage
├── packagea
│ └── packagea.go
├── packageb
│ └── packageb.go
└── main
└── mypackage.go
With go install
, the package files (.a
) are created in $GOPATH/pkg
, with go build
, I can't find the .a
files anywhere.