【问题标题】:Does the go compiler compile the package that's never used in maingo 编译器是否编译了 main 中从未使用过的包
【发布时间】:2023-01-05 15:00:12
【问题描述】:

如果我有一个包含 A、B、C 三个包的 go 模块。在 main.go 及其所有导入中,只使用 A、B 包。我的问题是,go build 生成的二进制文件是否有任何来自包 C 的代码?

【问题讨论】:

    标签: go


    【解决方案1】:

    二进制构建将只包括从 main 引用的所有符号的传递闭包。这将仅包括导入包中的那些函数和数据,以及使用的类型的所有方法。因此,如果您在包中有一个从未使用过的函数,那么它就不会出现在二进制文件中。但是,如果您使用具有未使用方法的数据类型,则这些方法将在二进制文件中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-10-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多