如何在Go中构建发布版本的二进制文件?

huangapple go评论93阅读模式
英文:

How to build a release version binary in Go?

问题

在C语言中,我们可以构建调试版本或发布版本的二进制文件(目标文件和可执行文件)。在Go语言中,我们如何做到这一点?

英文:

In C, we can build a debug version or a release version of the binary files (the object files and the executable). How can we do this in Go?

答案1

得分: 141

在Go语言中,通常没有调试版本或发布版本的概念。

默认情况下,go build命令会将符号和调试信息与二进制文件一起编译。然而,你可以使用go build -ldflags "-s -w"命令去除符号和调试信息。

英文:

In Go, it isn't typical to have a debug version or a release version.

By default, go build combines symbol and debug info with binary files. However, you can remove the symbol and debug info with go build -ldflags "-s -w".

答案2

得分: 26

你可以使用以下命令来指示链接器去除调试符号:

go install -ldflags '-s'

我刚刚在一个相当大的可执行文件(GXUI 示例之一)上尝试了这个命令,它将文件大小从约16M减小到约10M。当然,效果因情况而异...

这里是所有链接器选项的完整列表。

英文:

You can instruct the linker to strip debug symbols by using

go install -ldflags '-s'

I just tried it on a fairly large executable (one of the GXUI samples), and this reduced it from ~16M to ~10M. As always, your mileage may vary...

Here is a full list of all linker options.

huangapple
  • 本文由 发表于 2015年4月13日 14:39:14
  • 转载请务必保留本文链接:https://go.coder-hub.com/29599209.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定