gpt4 book ai didi

c - 在 C 语言中使用 Go 的限制

转载 作者:IT王子 更新时间:2023-10-29 02:10:55 24 4
gpt4 key购买 nike

最近偶然发现这篇关于在 C 和其他语言中利用 Go 的共享库编译器的文章:https://medium.com/learning-the-go-programming-language/calling-go-functions-from-other-languages-4c7d8bcc69bf

我想知道编译器使用的限制是什么?例如,一旦编译,Go 的 net 和 socket 库是否都像独立的 Go 应用程序一样工作?

即。理论上我可以有一个 Go 应用程序作为通信层(比方说 HTTP)和一个 C 应用程序执行一些较低级别的处理,然后交给 Go 进行交付吗?

对于用例的笨拙解释,我们深表歉意,只是想了解 Go 在编译环境中的一般 react 。我对这个级别的共享库知之甚少,所以只是出于好奇。

最佳答案

理论上,没有任何限制——从概念上讲,.so 只是一堆机器代码,恰好捆绑了一个非常智能的内存管理器,并公开了一个与共享库格式匹配的 API。

在实践中,存在一些最小的怪癖。例如,在 go .so 中链接的程序当前不能对其调用 dlclose:https://github.com/golang/go/issues/11100

您可能会发现提及 c-shared 的开放问题列表很有帮助:https://github.com/golang/go/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20c-shared

关于c - 在 C 语言中使用 Go 的限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47425089/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com