使用 TEXT 指令消除 go 二进制文件中的文件路径
删除诸如“/Users/myuser/dev/go/src/”之类的文件路径go 可执行文件中的 fooapi/spikes/mongoapi.go",使用 -trimpath 标志作为如下:
CGO_ENABLED=0 go build -v -a -ldflags="-w -s" \ -gcflags=-trimpath=/Users/myuser/dev/go/src \ -asmflags=-trimpath=/Users/myuser/dev/go/src \ -o ./fooapi spikes/mongoapi.go
-trimpath 的机制:
传递给 -gcflags 和 -asmflags 的 -trimpath 标志会从记录的源文件路径中删除指定的前缀elf 二进制。
结果验证:
执行 go tool objdump ./fooapi 查看修改结果:
$ go tool objdump ./fooapi . . TEXT main.init(SB) 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 工具在 Go 社区中仍面临争议。已报告不可预见的错误;请参阅链接的讨论以获取更多信息。
以上是如何使用'-trimpath”标志从 Go 二进制文件中删除文件路径?的详细内容。更多信息请关注PHP中文网其他相关文章!