gpt4 book ai didi

go - Go插件中没有符号

转载 作者:数据小太阳 更新时间:2023-10-29 03:11:12 25 4
gpt4 key购买 nike

我正在尝试使用 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

这会在 GOPATH 的根目录中生成 p.so。接下来我尝试通过 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[]}

如您所见,符号图是空的。我究竟做错了什么?

最佳答案

来自plugin docs

A symbol is any exported variable or function

您需要添加导出的变量或函数才能让您的插件正常工作。

关于go - Go插件中没有符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51434064/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com