登录
首页 >  Golang >  Go问答

VPP插件可以用Go实现吗?

来源:stackoverflow

时间:2024-04-23 13:18:39 324浏览 收藏

小伙伴们有没有觉得学习Golang很有意思?有意思就对了!今天就给大家带来《VPP插件可以用Go实现吗?》,以下内容将会涉及到,若是在学习中对其中部分知识点有疑问,或许看了本文就能帮到你!

问题内容

VPP 提供了用于开发可挂接到节点图中的自定义插件的 I/S。我只看到过用 C 语言编写的此类插件的示例,并且想知道是否也可以使用其他语言(例如 Go)来编写此类插件。


解决方案


我不知道“VPP”是什么,但答案是:“也许”;原因如下:

  • Go 代码能够通过其名为 cgo 的工具与 C 库交互。

    cgo 是一个多方面的东西:它允许你以某种方式“导出”某些 Go 函数,以便可以从 C 端调用它们,并且它允许你从 C 端调用函数。它还允许您编写一些内联 C 代码,以便在必要时为 C 端提供粘合。

  • 一段时间以来,Go 构建工具集(至少是其“参考”实现)提供了使用 C 兼容 API 将 Go 代码编译成静态或动态库的功能。

    参见 this

考虑到这些事情,理论上来说,应该可以做你想做的事情。 注意一些可能的障碍:

  • 大多数时候,如果一个“平台”允许你用 C 语言编写一个“插件”,那么就预示着你的插件将广泛使用该平台自己的 API。

    这通常意味着您的插件应该包含平台提供的某些头文件。

  • 该平台可能还要求您的插件链接到某个平台提供的库(通常是共享的)。

cgo 可以完成上述所有操作,但您需要仔细检查平台提供的 API,并且可能编写 Go 帮助程序以使其在 Go 代码中的使用更加自然。

构建/链接问题(通常是头文件和库的位置)也可能是需要解决的问题。

以上就是《VPP插件可以用Go实现吗?》的详细内容,更多关于的资料请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>