go version go1.8 linux/amd64
Par example,
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 ] $
Identique à la construction avec -a
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
$
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: