避免在 golang 上调试信息

我认为 gc 默认包含调试信息。但是,我想避免反编译。

用gc编译go代码时如何去掉调试信息?

注意:使用 gccgo 并不能解决问题。如果我不使用 '-g' 编译,则可执行文件会被破坏并且只输出:

ELF 可执行文件中没有调试信息 errno -1 致命错误:ELF 可执行文件中没有调试信息

运行时堆栈:ELF 可执行文件中没有调试信息 errno -1 panic during panic"


手掌心
浏览 455回答 2
2回答

PIPIONE

go 链接器有一个标志-w,用于禁用 DWARF 调试信息生成。您可以为 go 工具构建命令提供链接器标志,如下所示:go build -ldflags '-w'Linux/Unix 平台上的另一种方法是strip对编译后的二进制文件使用命令。这似乎产生比上述链接器选项更小的二进制文件。

九州编程

我推荐使用-ldflags="-s -w"which 删除符号表和调试信息。作为 Go 1.13 的奖励,-trimpath可用于减少存储在文件中的文件路径的长度
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go