2015-04-13 13 views

Odpowiedz

22

W wersji Go nie jest typowa wersja debugowania lub wersja wydania. Domyślnie go build łączy informacje o symbolu i debugowaniu z plikami binarnymi. Możesz jednak usunąć symbol i informacje o debugowaniu za pomocą go build -ldflags "-s -w".

+1

Tutaj jest trochę dokumentacji - https://golang.org/doc/gdb#Introduction. – Greg

+3

Masz rację, ale myślę, że istnieje dobry powód, dla którego nie jest typowe obcinanie symboli - jeśli na przykład dostaniesz raport o paniki na wolności, byłoby wspaniale mieć tam symbole, które mogłyby informować. Ślad stosu. – twotwotwo

+2

Myślę, że "-s" (pomijając tabelę symboli i informacje debugowania) zawiera już "-w" (pomijając tabelę symboli DWARF), więc nie powinno być potrzeby określania obu. Przy użyciu wykonywanego programu, "-s -w" daje dokładnie taki sam rozmiar jak "-s". – rob74

5

można polecić linker rozebrać symboli debugowania za pomocą

go install -ldflags '-s' 

prostu próbowałem go na dość dużą wykonywalnego (jeden z GXUI próbek), a to zmniejsza się ją od ~ 16M do ~ 10M. Jak zawsze, twój przebieg może się różnić ...

Here to pełna lista wszystkich opcji linkerów.