In C, possiamo creare una versione di debug o una versione di rilascio dei file binari (i file oggetto e l'eseguibile). Come possiamo farlo in Go?Come creare un binario della versione di rilascio in Go?
15
A
risposta
22
In Go, non è normale avere una versione di debug o una versione di rilascio.
Per impostazione predefinita, go build
combina informazioni su simboli e debug con file binari. Tuttavia, è possibile rimuovere il simbolo e le informazioni di debug con go build -ldflags "-s -w"
.
5
è possibile istruire il linker per mettere a nudo i simboli di debug utilizzando
go install -ldflags '-s'
ho appena provato su una abbastanza grande eseguibile (una delle GXUI campioni), e questo ridotto da ~ 16M a ~ 10M. Come sempre, il tuo chilometraggio può variare ...
Here è un elenco completo di tutte le opzioni di linker.
Problemi correlati
- 1. Come creare versione vscode di rilascio
- 2. Differenza tra rilascio binario e rilascio sorgente?
- 3. Come collegare staticamente un binario Go che utilizza crypto/tls?
- 4. Come creare una versione di un framework iOS in Xcode?
- 5. Visual Studio: informazioni di debug nella versione di rilascio
- 6. Come creare un programma binario completo con gccgo?
- 7. Gestione versione pacchetto in Go 1.5
- 8. aggiornamento alla prossima versione di rilascio
- 9. Rilascio Maven: versione di sviluppo successiva in modalità batch
- 10. Come creare in modalità di rilascio con ottimizzazioni in GCC?
- 11. Come creare un dump binario/esadecimale della memoria di un altro processo?
- 12. Gestione controllo rilascio versione open source
- 13. come creare l'applicazione binario di iphone
- 14. Versione di rilascio di * .apk in Android Studio
- 15. Come allegare librerie di terze parti nella versione di rilascio
- 16. Come posso creare un file binario in Perl?
- 17. Come creare un nodo CDATA di xml con go?
- 18. Come creare apk in modalità di rilascio usando Maven
- 19. haskell - come creare un binario da un modulo non principale?
- 20. Impostazione della versione iOS minima in XCode
- 21. Quando si creano programmi Go per il rilascio, è prassi normale utilizzare semplicemente "go build"?
- 22. Come creare modelli di trascinamento e rilascio dinamici?
- 23. Come ottenere la funzionalità "virtualhost" in Go?
- 24. La versione di rilascio C# ha ancora il file .pdb
- 25. Come determinare la versione di binario glibc (glibcxx) dipenderà da?
- 26. Come posso creare la versione di rilascio della mia app per iOS e ottenere il Caricatore applicazioni di Apple per trovarlo?
- 27. Android Studio: versione di rilascio run/debug dell'app
- 28. Versione dinamica da git con go get
- 29. plugin di rilascio di Maven con versione parametrizzata
- 30. "go build" è diventato molto lento dopo l'installazione di una nuova versione di Go
C'è qualche documentazione su questo qui - https://golang.org/doc/gdb#Introduction. – Greg
Hai ragione, ma penso che ci sia una buona ragione per cui non è tipico smascherare i simboli - ad esempio, se si ottiene un resoconto di un panico in natura, sarebbe bello avere i simboli lì per un messaggio informativo stacktrace. – twotwotwo
Penso che "-s" (ometti la tabella dei simboli e le informazioni di debug) includa già "-w" (ometti la tabella dei simboli DWARF), quindi non dovrebbe essere necessario specificarli entrambi. Con l'eseguibile ho provato questo, "-s -w" dà esattamente la stessa dimensione di "-s" da solo. – rob74