Go: cmd / go: buildmode = plugin selalu mengkompilasi ulang semua dependensi

Dibuat pada 25 Mar 2017  ·  1Komentar  ·  Sumber: golang/go

go version go1.8 linux/amd64

Apa yang kamu lakukan?

Sebagai contoh,

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

Apa yang ingin Anda lihat?

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

Apa yang Anda lihat?

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

Sama seperti membangun dengan -a

NeedsFix help wanted

Komentar yang paling membantu

Ini karena semua paket perlu dibangun kembali oleh toolchain yang dikonfigurasi untuk penautan dinamis, dan secara default go build tidak membuat cache build paket perantara. Saya percaya bekerja di cmd / go akan mengubahnya, dan masalah ini akan hilang.

Sampai saat itu, Anda dapat menggunakan -i saat membuat plugin untuk menyimpan cache pembuatan paket perantara, jadi ini hanya terjadi pertama kali:

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

>Semua komentar

Ini karena semua paket perlu dibangun kembali oleh toolchain yang dikonfigurasi untuk penautan dinamis, dan secara default go build tidak membuat cache build paket perantara. Saya percaya bekerja di cmd / go akan mengubahnya, dan masalah ini akan hilang.

Sampai saat itu, Anda dapat menggunakan -i saat membuat plugin untuk menyimpan cache pembuatan paket perantara, jadi ini hanya terjadi pertama kali:

$ 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
$
Apakah halaman ini membantu?
0 / 5 - 0 peringkat