Go: cmd / go: buildmode = plugin recompile toujours toutes les dépendances

Créé le 25 mars 2017  ·  1Commentaire  ·  Source: golang/go

go version go1.8 linux/amd64

Qu'est-ce que tu as fait?

Par example,

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

Qu'espériez-vous voir?

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

Qu'avez-vous vu à la place?

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

Identique à la construction avec -a

NeedsFix help wanted

Commentaire le plus utile

En effet, tous les packages doivent être reconstruits par la chaîne d'outils configurée pour la liaison dynamique, et par défaut go build ne met pas en cache les versions de packages intermédiaires. Je pense que le travail sur cmd / go va changer cela, et ce problème disparaîtra.

Jusque-là, vous pouvez utiliser -i lors de la création de plugins pour mettre en cache les versions de packages intermédiaires, donc cela ne se produit que la première fois:

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

>Tous les commentaires

En effet, tous les packages doivent être reconstruits par la chaîne d'outils configurée pour la liaison dynamique, et par défaut go build ne met pas en cache les versions de packages intermédiaires. Je pense que le travail sur cmd / go va changer cela, et ce problème disparaîtra.

Jusque-là, vous pouvez utiliser -i lors de la création de plugins pour mettre en cache les versions de packages intermédiaires, donc cela ne se produit que la première fois:

$ 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
$
Cette page vous a été utile?
0 / 5 - 0 notes