go 語言的 1.5 版本在標準命令方面有了重大變更。這倒不是說它們的用法有多大的變化,而是說它們的底層支援已經大變樣了。讓我們先來對比一下$goroot/pkg/tool/< 平台相關目錄 >
中的內容。以下簡稱此目錄為 go 工具目錄。
插播:平台相關目錄即以_命名的目錄,用於存放因特定平台的不同而不同的**包歸檔檔案或可執行檔案。其中,代表特定平台的作業系統代號,而則代表特定平台的計算架構代號。使用go env
命令便可檢視它們在你的計算機中的實際值。
1.4 版本的 go 工具目錄的內容如下:
下面是go 1.5版本的:5a 5l 6g 8c addr2line dist objdump tour
5c 6a 6l 8g cgo fix pack vet
5g 6c 8a 8l cover nm pprof yacc
可以看到,1.5 版本的目錄內容精簡了不少。這是因為 go 1.5 的編譯器、鏈結器都已經完全用 go 語言重寫了。而在這之前,它們都是用 c 語言寫的,因此不得不為每類平台編寫不同的程式並生成不同的檔案。例如,8g、6g 和 5g 分別是 gc 編譯器在 x86(32bit)、x86-64(64bit)和 arm 計算架構的計算機上的實現程式。相比之下,用 go 語言實現的好處就是,編譯器和鏈結器都將是跨平台的了。簡要來說,go 1.5 版本的目錄中的檔案 compile 即是統一後的編譯器,而檔案 link 則是統一後的鏈結器。addr2line asm compile dist fix nm pack tour vet
api cgo cover doc link objdump pprof trace yacc
本教程並不會講解 go 語言的編譯器、鏈結器以及其它工具是怎樣被編寫出來的,並只會關注於怎樣用好包含它們在內的 go 語言自帶的命令和工具。
為了讓講解更具關聯性,也為了讓讀者能夠更容易的理解這些命令和工具,本教程並不會按照這些命令的字典順序描述它們,而會按照我們在實際開發過程中通常的使用順序以及它們的重要程度來逐一進行說明。現在,我們就先從go build
命令開始。
摘自:
Go標準命令
1.bug 在瀏覽器中開啟github的golang專案,可以提交bug報告。go bug 2.build 編譯專案和檔案 交叉編譯 cgo enabled 0 goos darwin goarch amd64 go build o demo.darwin.amd64 cgo enabled 0 g...
go標準命令詳解0 4 go clean
執行go clean命令會刪除掉執行其它命令時產生的一些檔案和目錄,包括 在使用go build命令時在當前 包下生成的與包名同名或者與go原始碼檔案同名的可執行檔案。在windows下,則是與包名同名或者go原始碼檔案同名且帶有 exe 字尾的檔案。在執行go test命令並加入 c標記時在當前 ...
go標準命令詳解0 7 go test
go test命令用於對go語言編寫的程式進行測試。這種測試是以 包為單位的。當然,這還需要測試原始碼檔案的幫助。關於怎樣編寫並寫好go程式測試 我們會在本章的第二節加以詳述。在這裡,我們只討論怎樣使用命令啟動測試。go test命令會自動測試每乙個指定的 包。當然,前提是指定的 包中存在測試原始碼...