Go: cmd / go: buildmode = plugin всСгда ΠΏΠ΅Ρ€Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всС зависимости

Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ Π½Π° 25 ΠΌΠ°Ρ€. 2017  Β·  1ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ  Β·  Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: golang/go

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

NeedsFix help wanted

Π‘Π°ΠΌΡ‹ΠΉ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π­Ρ‚ΠΎ связано с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ всС ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅Ρ€Π΅ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ инструмСнтов, настроСнной для динамичСского связывания, ΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ 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
$

>ВсС замСчания

Π­Ρ‚ΠΎ связано с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ всС ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅Ρ€Π΅ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ инструмСнтов, настроСнной для динамичСского связывания, ΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ 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
$
Π‘Ρ‹Π»Π° Π»ΠΈ эта страница ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ?
0 / 5 - 0 Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΈ