├── myplugin.go └── main.go /myplugin.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | func Add(x, y int) int { 4 | return x+y 5 | } -------------------------------------------------------------------------------- /main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "fmt" 5 | "plugin" 6 | ) 7 | 8 | func main() { 9 | p, err := plugin.Open("./myplugin.so") 10 | failOnError(err) 11 | add, err := p.Lookup("Add") 12 | failOnError(err) 13 | sum := add.(func(int, int) int)(1, 2) 14 | fmt.Println(sum) 15 | } 16 | 17 | func failOnError(err error) { 18 | if err != nil { 19 | panic(err) 20 | } 21 | } 22 | --------------------------------------------------------------------------------