猿问

Golang 可执行文件大小

我搜索了有关构建紧凑 Go 可执行文件的最新信息,但没有成功。大多数信息似乎已有数年历史。

我的程序:在 Rosettacode.org 上找到的标准 hello world。使用 Fortran,我得到一个 100 KB 以下的 exe 文件。使用 Go 时,exe 文件高达 2400 KB。

我的问题:是否有我应该使用的编译器开关或编译指示?是否还有其他我不知道的工具或技巧(我是 Go 的初学者)。Go 在可执行文件大小方面的未来计划是什么?在 Linux 下它是什么样的 - 同样的事情?大型程序上的 exe 文件会发生什么?

背景:我正在使用安装在 Windows 7 上的 go 1.5。我的项目正在编写(实际上是从其他语言迁移)一些命令行程序。拥有 20 个或更多大型 Go exe 文件会占用大量空间。好吧,我知道空间很便宜,所以我可以忍受它。不过,我相信澄清此事会对很多人有所帮助。


交互式爱情
浏览 254回答 2
2回答

一只甜甜圈

要减小可执行文件的大小,您可以使用以下方法之一指示链接器去除调试符号:go install -ldflags '-s' go install -ldflags '-s -w'我在一个相当大的可执行文件(GXUI示例之一)上尝试了它,这将它从 ~16M 减少到 ~10M。将 -w 添加到 -s 没有任何区别,但与往常一样,您的里程可能会有所不同......这是所有链接器选项的完整列表。

哈士奇WWW

Go 程序很大,因为它包含垃圾收集代码、goroutine 调度代码以及几乎所有静态链接的库。设计如此。
随时随地看视频慕课网APP

相关分类

Go
我要回答