我們已經構建了一個Go包,供我們中的許多人使用。如何在編譯時刪除未使用的代碼?
它使用標準import ("package-name")
方法進口。
雖然在編譯時,我們所有的工具,包括非常小的工具,都會以非常大的二進制文件結尾。
我們已經提取了實用程序中的所有字符串,並發現整個程序包正在被編譯到每個實用程序中。包括那些實用程序未使用的函數。
編輯1:
謝謝誰是應對這一問題的人們。
下面就是我們所看到的:
main.go
package main
import "play/subplay"
func main() {
subplay.A()
}
播放/ subplay.go
package subplay
func A() {
fmt.Printf("this is function A()")
}
func B() {
fmt.Printf("secret string")
}
函數B()不會被調用。然而,在構建二進制文件後,我們在main.exe中找到字符串「secret string」。
如何在編譯時從Go程序中刪除未使用的代碼?
您使用的是哪個版本的Go?因爲如果沒有調用subplay.B(),那麼在我的可執行文件中''secret secret字符串''不會出現**(Go 1.8,針對linux和windows)! – icza