2015-02-21 9 views
14

Czy budowanie programów Go do wydania jest standardową praktyką po prostu używać go build bez żadnych innych opcji? Pytam, ponieważ podczas budowania przy użyciu go build wszystkie informacje dotyczące debugowania są zawarte domyślnie. Aby go usunąć, możesz przekazać opcję do linkera, a więc:Czy budowanie programów Go do wydania jest standardową praktyką po prostu używać 'go build'?

go build -ldflags "-w" prog.go 

Pomija wszystkie symbole debugowania. Czy podczas budowania programów do wydania usuwasz te informacje lub pozostawiasz je w stanie nienaruszonym?

EDYCJA: Dla przejrzystości, zastanawiam się, jak ludzie kompilują programy Go do wdrożenia w środowisku na żywo. W innych językach kompilowanych masz inny zestaw opcji wiersza poleceń kompilatora do debugowania i kompilacji wydania, a kompilacje wydania zazwyczaj optymalizują plik wykonywalny i usuwają informacje debugowania.

+7

Usuwanie informacji debugowania z programu Go może łamać pewnych zastosowań refleksji. Nie powinieneś używać tej flagi. – fuz

+0

W zależności od przypadku użycia. Do wdrożenia na moje własne serwery, które domyślam się, jak ogromna większość użytkowników Go wdraża - naprawdę nie powinieneś tego robić. To naprawdę nic nie daje i zapobiega debugowaniu na serwerach, a niektóre odbijają rzeczy. –

+2

@FUZxxl Jakie zastosowania refleksji? Wszystko wydaje się działać dobrze. http://www.reddit.com/r/golang/comments/2woogl/when_building_go_programs_for_release_is_it/cot9q3z –

Odpowiedz

Powiązane problemy