【发布时间】:2017-12-29 23:14:31
【问题描述】:
我想从我用go build 创建的可执行文件中删除所有路径信息,例如/Users/myuser/dev/go/src/fooapi/spikes/mongoapi.go。
我正在编译这样的代码:
CGO_ENABLED=0 go build -v -a -ldflags="-w -s" -o ./fooapi spikes/mongoapi.go
来自上述 go build 命令的示例程序集的某些部分:
$ go tool objdump ./fooapi
.
.
TEXT main.init(SB) /Users/myuser/dev/go/src/api/spikes/mongoapi.go
mongoapi.go:60 0x12768c0 65488b0c25a0080000 GS MOVQ GS:0x8a0, CX
mongoapi.go:60 0x12768c9 483b6110 CMPQ 0x10(CX), SP
mongoapi.go:60 0x12768cd 7663 JBE 0x1276932
.
.
请注意:strip 不推荐,can lead to broken executables 如果您要推荐它作为解决方案。
【问题讨论】:
-
顺便说一句,关于 strip 的问题已经很老了,不再相关。 any 工具链普遍接受的解决方案是在临时或通用构建路径中构建可执行文件。