Go: cmd / go: buildmode = plugin kompiliert immer alle Abhängigkeiten neu

Erstellt am 25. März 2017  ·  1Kommentar  ·  Quelle: golang/go

go version go1.8 linux/amd64

Was hast du gemacht?

Beispielsweise,

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

Was hast du erwartet zu sehen?

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

Was hast du stattdessen gesehen?

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

Das gleiche wie beim Bauen mit -a

NeedsFix help wanted

Hilfreichster Kommentar

Dies liegt daran, dass alle Pakete von der für die dynamische Verknüpfung konfigurierten Toolchain neu erstellt werden müssen und go build standardmäßig keine Zwischenpaketerstellungen zwischenspeichert. Ich glaube, die Arbeit an cmd / go wird das ändern und dieses Problem wird verschwinden.

Bis dahin können Sie -i wenn Sie Plugins zum Zwischenspeichern von Zwischenpaket-Builds erstellen. Dies geschieht also nur beim ersten Mal:

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

>Alle Kommentare

Dies liegt daran, dass alle Pakete von der für die dynamische Verknüpfung konfigurierten Toolchain neu erstellt werden müssen und go build standardmäßig keine Zwischenpaketerstellungen zwischenspeichert. Ich glaube, die Arbeit an cmd / go wird das ändern und dieses Problem wird verschwinden.

Bis dahin können Sie -i wenn Sie Plugins zum Zwischenspeichern von Zwischenpaket-Builds erstellen. Dies geschieht also nur beim ersten Mal:

$ 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
$
War diese Seite hilfreich?
0 / 5 - 0 Bewertungen