2015-02-21 11 views
14

Quando si creano programmi Go per il rilascio, è normale usare semplicemente go build senza altre opzioni? Lo chiedo perché quando si costruisce utilizzando go build tutte le informazioni di debug sono incluse per impostazione predefinita. Per rimuoverlo è possibile passare un'opzione per il linker, in tal modo:Quando si creano programmi Go per il rilascio, è prassi normale utilizzare semplicemente "go build"?

go build -ldflags "-w" prog.go 

Questo omette tutti i simboli di debug. Quando crei programmi per il rilascio, rimuovi queste informazioni o le lascia intatte?

EDIT: Per chiarezza, mi chiedo come le persone compilano i programmi Go per la distribuzione in un ambiente live. In altri linguaggi compilati si dispone di un diverso set di opzioni della riga di comando del compilatore per il debugging e il rilascio di build e release build di solito ottimizzano il file eseguibile e rimuovono le informazioni di debug.

+7

Rimozione informazioni di debug da un programma Go può rompere alcuni usi di riflessione. Non dovresti usare quella bandiera. – fuz

+0

A seconda del caso d'uso. Per l'implementazione sui miei server, che indovinano è come la stragrande maggioranza degli utenti di Go distribuisce: davvero non dovresti farlo. Non ti dà nulla e impedisce il debug sui server e alcuni riflettono cose. –

+2

@FUZxxl Quali usi della riflessione? Tutto sembra funzionare bene. http://www.reddit.com/r/golang/comments/2woogl/when_building_go_programs_for_release_is_it/cot9q3z –

risposta