Go: cmd / go: buildmode = plugin siempre recompila todas las dependencias

Creado en 25 mar. 2017  ·  1Comentario  ·  Fuente: golang/go

go version go1.8 linux/amd64

¿Qué hiciste?

Por ejemplo,

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

¿Qué esperabas ver?

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

¿Qué viste en su lugar?

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

Lo mismo que construir con -a

NeedsFix help wanted

Comentario más útil

Esto se debe a que todos los paquetes deben ser reconstruidos por la cadena de herramientas configurada para la vinculación dinámica y, de forma predeterminada, go build no almacena en caché las compilaciones de paquetes intermedios. Creo que trabajar en cmd / go cambiará eso y este problema desaparecerá.

Hasta entonces, puede usar -i al crear complementos para almacenar en caché las compilaciones de paquetes intermedios, por lo que esto solo sucede la primera 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 los comentarios

Esto se debe a que todos los paquetes deben ser reconstruidos por la cadena de herramientas configurada para la vinculación dinámica y, de forma predeterminada, go build no almacena en caché las compilaciones de paquetes intermedios. Creo que trabajar en cmd / go cambiará eso y este problema desaparecerá.

Hasta entonces, puede usar -i al crear complementos para almacenar en caché las compilaciones de paquetes intermedios, por lo que esto solo sucede la primera 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
$
¿Fue útil esta página
0 / 5 - 0 calificaciones