gpt4 book ai didi

go - Go 是否依赖于 C 运行时?

转载 作者:IT王子 更新时间:2023-10-29 00:53:32 26 4
gpt4 key购买 nike

我找不到信息 Go 是否依赖于 C 运行时?如果依赖的话,是不是静态编译成二进制,让Go写的应用无依赖无处不在?

这里是关于what C runtime is的主题

最佳答案

如果您谈论的是 Go 编译器提供的可执行文件,那么答案是“是或否——这取决于”:

在大多数情况下,生成的可执行程序依赖于 C 运行时库。

但是,在某些平台上,在某些情况下,C 运行时库会动态链接。特别是,当使用 DNS 解析时,Linux 上低于 1.5 的 Go 版本就是这种情况:运行时依赖于平台的 libc 实现来处理这种解析。 In 1.5 this has been reworked .

另一种可能的情况是 (IIRC) Solaris,它没有提供稳定的方式来直接访问内核的系统调用和 requires routing these calls through the platform's libc .

还有另一种情况:使用cgo,这是一个将Go代码与外部C代码接口(interface)的层。使用 cgo 使您的 Go 程序依赖于 C 运行时。请注意,您可能不会直接使用 cgo,但您可能正在使用的一个或多个第三方包可以使用 cgo,并且——传递地——你的程序最终取决于C 运行时库。

关于go - Go 是否依赖于 C 运行时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41720090/

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