Heim >Backend-Entwicklung >Golang >Wie kann ich Dateipfade aus den TEXT-Anweisungen von Go Binaries entfernen, ohne das Tool „strip' zu verwenden?
Entfernen von Dateipfaden aus TEXT-Anweisungen in kompilierten Go-Binärdateien
Es besteht die Notwendigkeit, Dateipfadinformationen aus TEXT-Anweisungen in kompilierten Go-Binärdateien zu entfernen. Diese Frage sucht nach einer Lösung, die nicht die Verwendung des „Strip“-Werkzeugs beinhaltet.
Lösung: Verwendung von -trimpath-Flags
Der empfohlene Ansatz beinhaltet die Verwendung des „ -trimpath‘-Flags beim Aufruf von „go build“. Durch die Übergabe von „-trimpath“ an „-gcflags“ und „-asmflags“ können überflüssige Pfadinformationen aus der resultierenden Elf-Binärdatei entfernt werden.
Hier ist ein modifiziertes Beispiel des Befehls „go build“, der das „-“ enthält. Trimpath' flags:
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
Überprüfung:
Um die Wirksamkeit dieser Lösung zu bestätigen, führen Sie „go tool objdump“ für die geänderte Binärdatei aus:
$ 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 . .
Zusätzliche Hinweise:
Es ist wichtig zu beachten, dass während der Es wurde berichtet, dass das Tool „strip“ dieses Problem beheben kann. Einige Mitglieder der Go-Community äußern jedoch immer noch Bedenken hinsichtlich seiner Zuverlässigkeit. Es sind Fälle unbekannter und unvorhersehbarer Fehler aufgetreten, wie in verschiedenen Foren und Diskussionen dokumentiert.
Das obige ist der detaillierte Inhalt vonWie kann ich Dateipfade aus den TEXT-Anweisungen von Go Binaries entfernen, ohne das Tool „strip' zu verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!