Heim >Backend-Entwicklung >Golang >Wie kann ich Dateipfade aus den TEXT-Anweisungen von Go Binaries entfernen, ohne das Tool „strip' zu verwenden?

Wie kann ich Dateipfade aus den TEXT-Anweisungen von Go Binaries entfernen, ohne das Tool „strip' zu verwenden?

DDD
DDDOriginal
2024-11-30 03:06:10122Durchsuche

How Can I Remove File Paths from Go Binaries' TEXT Directives Without Using the `strip` Tool?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn