首页 > 解决方案 > 为什么 go 插件地址不使用 go 二进制加载

问题描述

我使用https://github.com/vladimirvivien/go-plugin-example创建了一个插件

go build -buildmode=plugin -o eng/eng.so eng/greeter.go

使用命令创建了一个 go 二进制文件:

go build -linkshared test.go

使用测试二进制文件加载插件:

export LD_PRELOAD=./eng.so; ./test

插件地址将加载到firstmoduledatago 运行时的结构中。

使用命令创建了另一个 go 二进制文件:

go build test.go

使用测试二进制加载插件:

export LD_PRELOAD=./eng.so; ./test

插件地址不会加载到firstmoduledata. 这是因为addmoduledata()没有调用。

是否可以为这种情况加载插件地址?

标签: go

解决方案


推荐阅读