【发布时间】:2023-01-05 15:00:12
【问题描述】:
如果我有一个包含 A、B、C 三个包的 go 模块。在 main.go 及其所有导入中,只使用 A、B 包。我的问题是,go build 生成的二进制文件是否有任何来自包 C 的代码?
【问题讨论】:
标签: go
如果我有一个包含 A、B、C 三个包的 go 模块。在 main.go 及其所有导入中,只使用 A、B 包。我的问题是,go build 生成的二进制文件是否有任何来自包 C 的代码?
【问题讨论】:
标签: go
二进制构建将只包括从 main 引用的所有符号的传递闭包。这将仅包括导入包中的那些函数和数据,以及使用的类型的所有方法。因此,如果您在包中有一个从未使用过的函数,那么它就不会出现在二进制文件中。但是,如果您使用具有未使用方法的数据类型,则这些方法将在二进制文件中。
【讨论】: