因为只是一个简单的样例,所以直接上代码了。
- math.go文件
package main
func Add(x, y int) int {
return x + y
}
func Sub(x, y int) int {
return x - y
}
- main.go文件
package main
import (
"fmt"
"plugin"
)
func main() {
p, _ := plugin.Open("./math.so")
add, _ := p.Lookup("Add")
sub, _ := p.Lookup("Sub")
sum := add.(func(int, int) int)(11, 2)
fmt.Println(sum)
subt := sub.(func(int, int) int)(11, 2)
fmt.Println(subt)
}
执行完
go build -buildmode=plugin -o math.so math.go
目录结构为
然后执行
go run main.go