golang1.8 通过plugin方式build so

golang1.83
只有linux下支持plugin方式
生成so


package main // // No C code needed. import "C" import ( "fmt" ) var V int func F() { fmt.Printf("Hello, number %d ", V)


}


go build -buildmode=plugin  main.go 

调用so
package main

import (
    "plugin"
)

func main() {
    p, err := plugin.Open("main.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())() 
}
 

  http://blog.csdn.net/andylau00j/article/details/53769446

原文地址:https://www.cnblogs.com/coolyylu/p/6993971.html