首页 >后端开发 >Golang >如何使用'-trimpath”标志从 Go 二进制文件中删除文件路径?

如何使用'-trimpath”标志从 Go 二进制文件中删除文件路径?

Susan Sarandon
Susan Sarandon原创
2024-12-03 10:29:10326浏览

How Can I Remove File Paths from Go Binaries Using the `-trimpath` Flag?

使用 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn