不向dll或iso文件添加扩展名是一种不好的做法吗?

时间:2018-09-27 21:02:16

标签: go dll

我使用的是go插件包,并且按照指南进行操作,他们说我应该使用buildmode=plugin创建一个iso文件,并且输出应具有扩展名so。这是经验法则吗?我应该总是添加扩展名吗?还是口味问题?

谢谢!

1 个答案:

答案 0 :(得分:0)

通常,插件(有时称为共享/动态库)的扩展取决于它们在其上运行的平台。

对于Windows,该扩展名通常为.dll(对于“动态链接库”)。但是,在撰写本文时,Go不支持Windows插件。

对于Linux / BSD系统,该扩展名通常为.so(对于“共享对象”),这是Go文档建议您使用的。

documentation for the plugin package之后,在Linux上看起来像这样:

// after go build -buildmode=plugin -o plugin_name.so

p, err := plugin.Open("plugin_name.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())() // prints "Hello, number 7"

简而言之:使用.so