golang plugin
时间: 2023-10-03 15:05:19 浏览: 165
Golang 提供了一种插件机制,可以在运行时动态加载和调用插件。插件是编译的 Go 代码,可以在主程序中使用。下面是一个简单的示例,展示如何创建和使用一个 Golang 插件:
首先,创建一个包含插件代码的 Go 文件,例如 plugin.go:
```go
package main
import "fmt"
func Hello() {
fmt.Println("Hello from the plugin!")
}
```
接下来,将插件编译为共享库。使用以下命令来编译插件:
```
go build -buildmode=plugin -o plugin.so plugin.go
```
这会生成一个名为 plugin.so 的共享库文件。
然后,在主程序中加载并使用插件。例如,创建一个 main.go 文件,内容如下:
```go
package main
import "plugin"
func main() {
p, err := plugin.Open("plugin.so")
if err != nil {
panic(err)
}
helloFunc, err := p.Lookup("Hello")
if err != nil {
panic(err)
}
helloFunc.(func())()
}
```
使用以下命令编译主程序:
```
go build -o main main.go
```
执行生成的可执行文件 main,将输出 "Hello from the plugin!"。
阅读全文