go version go1.8 linux/amd64
Por exemplo,
package main
var V int
go build -buildmode=plugin -v test/main.go
lion@Lion-Laptop [ test ] $ go build -buildmode=plugin -v test/main.go
command-line-arguments
lion@Lion-Laptop [ test ] $
lion@Lion-Laptop [ test ] $ go build -buildmode=plugin -v test/main.go
runtime/internal/sys
runtime/internal/atomic
runtime
runtime/cgo
command-line-arguments
lion@Lion-Laptop [ test ] $
O mesmo que construir com -a
Isso ocorre porque todos os pacotes precisam ser reconstruídos pelo conjunto de ferramentas configurado para link dinâmico e, por padrão, go build
não armazena em cache compilações de pacotes intermediários. Eu acredito que trabalhar em cmd / go mudará isso, e este problema irá embora.
Até então, você pode usar -i
ao construir plug-ins para armazenar em cache compilações de pacotes intermediários, então isso só acontece na primeira vez:
$ go build -buildmode=plugin -i -v plugin1
runtime/internal/sys
runtime/internal/atomic
runtime
common
internal/cpu
errors
unicode/utf8
sync/atomic
unicode
internal/race
math
sync
syscall
strconv
reflect
runtime/cgo
plugin1
$ go build -buildmode=plugin -i -v plugin1
plugin1
$
Comentários muito úteis
Isso ocorre porque todos os pacotes precisam ser reconstruídos pelo conjunto de ferramentas configurado para link dinâmico e, por padrão,
go build
não armazena em cache compilações de pacotes intermediários. Eu acredito que trabalhar em cmd / go mudará isso, e este problema irá embora.Até então, você pode usar
-i
ao construir plug-ins para armazenar em cache compilações de pacotes intermediários, então isso só acontece na primeira vez: