2015-04-13 15 views

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".

+1

C'è qualche documentazione su questo qui - https://golang.org/doc/gdb#Introduction. – Greg

+3

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

+2

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

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