我正在尝试使用Go的插件系统。即使有一个非常基本的例子,我也无法在编译的插件中找到任何符号。我的设置如下:
/Users/blah/test-workspace/
src/
main/
main.go
plug/
plug.go
plug.go
如下所示:
package main
type B struct {}
func main() {}
来自
/Users/blah/test-workspace/
目录,我使用以下方法生成此目录:
GOPATH="/Users/blah/test-workspace" go build -buildmode plugin plug
这产生
p.so
在Gopath的根部。接下来我尝试通过
main/main.go
:
package main
import (
"fmt"
"plugin"
"os"
)
func main() {
plugin, err := plugin.Open("plug.so")
if err != nil {
fmt.Printf("Error: %+v\n", err)
os.Exit(1)
}
fmt.Printf("%+v\n", plugin)
}
此代码的输出为:
&{pluginpath:plug err: loaded:0xc420088060 syms:map[]}
尽你所能,符号图是空的。我做错什么了?