Go Plugin
Contents
go plugin
[serialt@Krab plugin]๐ณ tree .
.
โโโ go.mod
โโโ kk
โ โโโ kk.go
โ โโโ kk.so
โโโ ks
โโโ main.go
// kk.go
package main
import "fmt"
func Greet(name string) {
fmt.Println("Hello", name)
}
func main() {}
// main.go
package main
import (
"log"
"plugin"
)
func main() {
p, err := plugin.Open("./kk/kk.so")
if err != nil {
log.Fatal(err)
}
greet, err := p.Lookup("Greet")
if err != nil {
log.Fatal(err)
}
greet.(func(string))("Go")
}
็ผ่ฏๆไปถ
cd kk && go build -buildmode=plugin
็ผ่ฏไธปๆๅก่ฐ็จๆไปถ
[root@Krab plugin]๐ณ go build
[root@Krab plugin]๐ณ ./ks
Hello Go