수색…
소개
Go는 런타임에 다른 Go 코드를 동적으로 링크하는 데 사용할 수있는 플러그인 메커니즘을 제공합니다.
Go 1.8부터는 Linux에서만 사용할 수 있습니다.
플러그인 정의 및 사용
package main
import "fmt"
var V int
func F() { fmt.Printf("Hello, number %d\n", V) }
이것은 다음과 같이 만들 수 있습니다 :
go build -buildmode=plugin
그런 다음 애플리케이션에서로드하여 사용합니다.
p, err := plugin.Open("plugin_name.so")
if err != nil {
panic(err)
}
v, err := p.Lookup("V")
if err != nil {
panic(err)
}
f, err := p.Lookup("F")
if err != nil {
panic(err)
}
*v.(*int) = 7
f.(func())() // prints "Hello, number 7"
Go의 상태 2017 에서 의 예.
Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow