Go: cmd / go: buildmode = plugin sempre recompilar todas as dependências

Criado em 25 mar. 2017  ·  1Comentário  ·  Fonte: golang/go

go version go1.8 linux/amd64

O que você fez?

Por exemplo,

package main
var V int
go build -buildmode=plugin -v test/main.go

O que você esperava ver?

lion@Lion-Laptop [ test ] $ go build -buildmode=plugin -v test/main.go
command-line-arguments
lion@Lion-Laptop [ test ] $ 

O que você viu em vez disso?

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

NeedsFix help wanted

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:

$ 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
$

>Todos os comentários

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
$
Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

gopherbot picture gopherbot  ·  3Comentários

natefinch picture natefinch  ·  3Comentários

longzhizhi picture longzhizhi  ·  3Comentários

dominikh picture dominikh  ·  3Comentários

OneOfOne picture OneOfOne  ·  3Comentários