go二进制文件在什么情况下动态链接?

eni*_*has 5 linker dynamic-linking go static-linking

Go 编程语言的一项重要功能是它生成静态链接的二进制文件。然而,当我运行ldd *我的时$GOPATH/bin,我发现了几个动态可执行文件。是否有一套明确的规则来理解go编译器在什么情况下生成动态链接的二进制文件?

Fli*_*mzy 4

当使用cgo时,这就是 Go 链接到 C 程序的方式,当然可以使用动态链接库。

  • @enitihas,仅仅因为包不使用 cgo,并不意味着它的依赖项不使用。甚至 std 库也可能使用 cgo,例如在“net”包、“os/user”或“crypto/tls”中。 (3认同)