Go-Code ohne Debug-Informationen kompilieren
In Go werden Debug-Informationen standardmäßig während der Kompilierung einbezogen, was das Debuggen von Code erleichtern kann . Diese Informationen können jedoch auch extrahiert werden, um den Code zu dekompilieren. Um dies zu verhindern, müssen wir Debugging-Informationen beim Kompilieren ausschließen.
Verwendung von -ldflags
Das Flag -ldflags kann verwendet werden, um Optionen an den Linker zu übergeben. Um Symboltabellen- und Debugging-Informationen zu entfernen, fügen Sie -s -w zur Option -ldflags hinzu. Hier ist ein Beispiel:
go build -ldflags="-s -w" main.go
Zusätzlicher Tipp für Go 1.13
In Go 1.13 und höher kann das Flag -trimpath verwendet werden, um die Länge von Dateipfaden zu reduzieren in der ausführbaren Datei gespeichert. Dadurch kann die Größe der generierten Binärdatei weiter minimiert werden.
Hinweis zu gccgo
Es ist wichtig zu beachten, dass die Verwendung von gccgo, einem auf GCC basierenden Go-Compiler, keine Lösung bietet das Problem. Wenn Sie mit gccgo ohne das Flag -g kompilieren, wird ein Fehler im Zusammenhang mit fehlenden Debug-Informationen auftreten.
Empfehlung
Für die vollständige Entfernung von Debug-Informationen ist dies der Fall Es wird empfohlen, die Option -ldflags="-s -w" zu verwenden. Dadurch werden effektiv Symbole und Debug-Informationen entfernt, wodurch es schwieriger wird, die kompilierte Binärdatei zu dekompilieren.
Das obige ist der detaillierte Inhalt vonWie kompiliere ich Go-Code ohne Debugging-Informationen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!