編譯時,如果編譯的結果需要gdb調試則使用參數-gcflags “-N -l”,這樣可以忽略Go內部做的一些優化,聚合變量和函數等優化. go build -gcflags "-N -l",但是一定要注意是不是小寫的i,也不是大寫的I,是小寫的L,不然會出現奇怪的錯誤。
如果編譯的結果需要發佈.則使用-ldflags “-s”,可以去掉調試信息,減小大約一半的大小
go build -ldflags "-s"
刪除調試符號:go build -ldflags “-s -w”
- -s: 去掉符號信息。
- -w: 去掉DWARF調試信息。
關閉內聯優化:go build -gcflags “-N -l”