【发布时间】:2017-10-31 12:57:49
【问题描述】:
我正在尝试使用 golang 插件,但在调用 plugin.Open 时总是出现运行时错误。
plugin.Open: plugin was built with a different version of package
我确定插件是用相同的代码构建的。现在我完全被错误信息弄糊涂了。
这些验证机制是如何工作的?
【问题讨论】:
-
链接器看到 abi 更改。这些模块通过哈希进行比较,因此您只会知道它们不匹配,但两个构建之间有些不同。
-
同时确保你使用最新的 Go 1.9.2 来编译你的插件和你的主应用程序。在以前的版本中存在一个错误(有关详细信息,请参阅go/issues/20248)。
-
@icza 我已经将我的编译器版本更新到 1.9.2 并重新编译了所有代码。错误仍然存在...
-
@Artish 那么也许你可以发一个minimal reproducible example。