我认为gc默认包含调试信息.但是,我想避免反编译.
在使用gc编译go代码时如何删除调试信息?
注意:使用gccgo无法解决问题.如果我不使用'-g'编译,则可执行文件被破坏并且只输出:
ELF可执行文件中没有调试信息错误-1致命错误:ELF可执行文件中没有调试信息
运行时堆栈:在恐慌期间ELF可执行程序中没有调试信息errno -1恐慌"
sna*_*nap 10
go链接器有一个标志-w,用于禁用DWARF调试信息的生成.您可以提供链接器标志以执行工具构建命令,如下所示:
go build -ldflags '-w'
Run Code Online (Sandbox Code Playgroud)
Linux/Unix平台上的另一种方法是strip对编译的二进制文件使用命令.这似乎比上面的链接器选项产生更小的二进制文件.