如何使用“外部函数接口”从 Go 调用 C

Posted

技术标签:

【中文标题】如何使用“外部函数接口”从 Go 调用 C【英文标题】:How do I call C from Go using the "foreign function interface" 【发布时间】:2011-02-13 23:33:34 【问题描述】:

如何使用 Go 的“外来函数接口”调用 C 函数?

FAQ 中提到了这个接口,但我在文档的其他地方看不到它。

【问题讨论】:

另见***.com/questions/1713214/how-to-use-c-in-go 【参考方案1】:

从 Go 存储库中查看 this file。它展示了如何在 Go 中包装 C 库,并且有很多解释该过程的 cmets。

【讨论】:

这是一个非常有据可查的文件!我已经开始写答案,但决定检查该文件,然后在阅读后删除我未完成的答案。【参考方案2】:

这是一个article,它通过Cgo 演示了以下内容:

举个例子,这里有一个 Go 包,它提供了两个 函数 - RandomSeed - 包装 C 的 randsrand 函数。

【讨论】:

以上是关于如何使用“外部函数接口”从 Go 调用 C的主要内容,如果未能解决你的问题,请参考以下文章

如何使用字符串作为参数从 Go 调用 Rust 函数?

Dart/Flutter ffi(外部函数接口)本机回调,例如:sqlite3_exec

如何从 CGO 返回结构

如何把Go调用C的性能提升10倍?

如何在golang 中调用c的静态库或者动态库

Go 语言中运行 C 代码