gpt4 book ai didi

c++ - 使库可从 GO 中的其他语言使用

转载 作者:IT王子 更新时间:2023-10-29 01:22:38 25 4
gpt4 key购买 nike

这似乎是一个愚蠢的问题,但是否有可能在 GO 中编写一个可以从其他语言调用的库,例如C++?

最佳答案

不幸的是,这不是直接(“可以调用”)可能的。平台的 C 实现定义的内容存在一些问题(对于大多数/所有官方 supported platforms ):

  • 调用约定不一样:例如,Go 函数/方法不使用任何寄存器作为返回值(如果有的话)。
  • 执行模型不同:使用拆分堆栈。
  • 垃圾收集器可能会对进程拥有但未被 GC“注册”为“不可收集”或特别标记(用于精确收集)的内存感到困惑。
  • Go 运行时的初始化是一个问题。它期望在流程中的任何其他事情之前完成。如果您要链接多个 Go .so,则不存在用于协调初始化的现成机制。

以上所有内容都适用于“gc”。在'gccgo'中同样在一定程度上放宽了。更多信息请参阅 C C_Interoperability .

关于c++ - 使库可从 GO 中的其他语言使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17697531/

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