You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Go模块中未被main使用的包会被编译吗?go build二进制含其代码吗?

Go构建二进制是否会包含未引用的包代码?

结论:不会包含来自C包的代码

Go的go build工具默认会执行严格的死代码消除(Dead Code Elimination)机制,规则如下:

  • 只有被主入口文件(main.go)或其直接/间接依赖链中的代码才会被编译进最终二进制文件。
  • 若C包既未被main.go直接导入,也未被A、B包的任何代码(包括类型、函数、变量、常量等)引用,那么构建过程会完全忽略C包的代码,不会将其编译到生成的二进制文件中。

额外说明:即便C包被A或B包导入但从未被实际使用,Go的构建工具也会自动剔除这部分未被使用的导入代码,不会出现在最终产物里。


内容的提问来源于stack exchange,提问作者dexian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 21:20:29