go version go1.8 linux/amd64
على سبيل المثال،
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 ] $
مثل البناء بـ -a
هذا لأن جميع الحزم تحتاج إلى إعادة بنائها بواسطة toolchain المكونة للارتباط الديناميكي ، وبشكل افتراضي لا يقوم go build
بتخزين إصدارات الحزم الوسيطة مؤقتًا. أعتقد أن العمل على cmd / go سيغير ذلك ، وستختفي هذه المشكلة.
حتى ذلك الحين ، يمكنك استخدام -i
عند إنشاء المكونات الإضافية لتخزين إنشاءات الحزم الوسيطة مؤقتًا ، لذلك لا يحدث هذا إلا في المرة الأولى:
$ 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
$
التعليق الأكثر فائدة
هذا لأن جميع الحزم تحتاج إلى إعادة بنائها بواسطة toolchain المكونة للارتباط الديناميكي ، وبشكل افتراضي لا يقوم
go build
بتخزين إصدارات الحزم الوسيطة مؤقتًا. أعتقد أن العمل على cmd / go سيغير ذلك ، وستختفي هذه المشكلة.حتى ذلك الحين ، يمكنك استخدام
-i
عند إنشاء المكونات الإضافية لتخزين إنشاءات الحزم الوسيطة مؤقتًا ، لذلك لا يحدث هذا إلا في المرة الأولى: