golang插件如何验证软件包的版本?

I'm trying to use golang plugin and always get runtime error when calling plugin.Open.

plugin.Open: plugin was built with a different version of package

I'm sure the plugin was build with same code. Now I'm totally confused by the error message.

How does these verify mechanism work ?

src/runtime/plugin.go:

for _, pkghash := range md.pkghashes {
    if pkghash.linktimehash != *pkghash.runtimehash {
        md.bad = true
        return "", nil, "plugin was built with a different version of package " + pkghash.modulename
    }
}