美文网首页
Go-plugin使用遇到的问题和解决方法

Go-plugin使用遇到的问题和解决方法

作者: Bug2Coder | 来源:发表于2021-03-17 16:20 被阅读0次

一、注意点:

1、插件和主程序的go版本号,依赖库版本需一致,不能改变、否则插件会无法使用。

2、插件对主程序的函数依赖问题、可使用定义接口的方式、将实现了接口的实例传入插件中使用

3、插件对主程序的类型依赖问题、可将类型封装成sync.map类型、进行插件和主程序间的数据交换

4、插件需要动态编译、即需要动态链接库文件、可将目标程序架构的依赖库文件,拷贝到目标主机上(如目标主机上无依赖库文件)

二、问题和解决方案:

1、go-plugin使用cgo来实现,因此需开启cgo

2、插件的交叉编译:

2.1 交叉编译的编译器设置:CC=arm-linux-gnueabihf-gcc
2.2 将交叉编译器的动态依赖库文件拷贝到目标主机上(如目标主机无依赖库文件)
2.3 主程序不能使用静态链接、否则会引起无法链接到插件的问题
2.4 主程序设置目标主机系统和架构build即可、插件build增加参数 -buildmode=plugin

相关文章

网友评论

      本文标题:Go-plugin使用遇到的问题和解决方法

      本文链接:https://www.haomeiwen.com/subject/fgrecltx.html