文章目錄
- 1.1 go語言三種環境變數
- 1.2 Go 語言原始碼的組織方式
- 1.3 原始碼安裝后的結果
- 1.4 構建和安裝 Go 程式的程序
- 1.5 命令補充
1.1 go語言三種環境變數
-
GOROOT:Go 語言安裝根目錄的路徑,也就是 GO 語言的安裝路徑,
-
GOPATH:若干作業區目錄的路徑,是我們自己定義的作業空間,
??GOPATH 是 Go 語言的作業目錄,它的值是一個目錄的路徑,也可以是多個目錄路徑,每個目錄都代表 Go 語言的一個作業區,利于這些作業區,去放置 Go 語言的原始碼檔案,以及安裝后的歸檔檔案和可執行檔案
- GOBIN:GO 程式生成的可執行檔案的路徑,
1.2 Go 語言原始碼的組織方式
??Go 語言的原始碼是以代碼包為基本組織單位的,在檔案系統中,這些代碼包其實是與目錄一一對應的,由于目錄可以有子目錄,所以代碼包也可以有子包,一個代碼包中可以包含任意個以.go 為擴展名的原始碼檔案,這些原始碼檔案都需要被宣告屬于同一個代碼包,代碼包的名稱一般會與原始碼檔案所在的目錄同名,如果不同名,那么在構建、安裝的程序中會以代碼包名稱為準,
??每個代碼包都會有匯入路徑,在作業區中,一個代碼包的匯入路徑實際上就是從 src 子目錄,到該包的實際存盤位置的相對路徑,代碼包的匯入路徑是其他代碼在使用該包中的程式物體時,需要引入的路徑,具體的方式就是import該代碼包的匯入路徑,
Go 語言原始碼的組織方式就是以環境變數 GOPATH、作業區、src 目錄和代碼包為主線的,一般情況下,Go 語言的原始碼檔案都需要被存放在環境變數 GOPATH 包含的某個作業區(目錄)中的 src 目錄下的某個代碼包(目錄)中,
1.3 原始碼安裝后的結果
??原始碼檔案通常會被放在某個作業區的 src 子目錄下,在安裝后如果產生了歸檔檔案(以“.a”為擴展名的檔案),就會放進該作業區的 pkg 子目錄;如果產生了可執行檔案,就可能會放進該作業區的 bin 子目錄,安裝某個代碼包而產生的歸檔檔案是與這個代碼包同名的,放置它的相對目錄就是該代碼包的匯入路徑的直接父級,
??歸檔檔案的相對目錄與 pkg 目錄之間還有一級目錄,叫做平臺相關目錄,平臺相關目錄的名稱是由 build的目標作業系統、下劃線和目標計算架構的代號組成的,

1.4 構建和安裝 Go 程式的程序
??構建使用命令go build,安裝使用命令go install,構建和安裝代碼包的時候都會執行編譯、打包等操作,這些操作生成的任何檔案都會先被保存到某個臨時的目錄中,如果構建的是庫原始碼檔案,那么操作后產生的結果檔案只會存在于臨時目錄中,這里的構建的主要意義在于檢查和驗證,如果構建的是命令原始碼檔案,那么操作的結果檔案會被搬運到原始碼檔案所在的目錄中,安裝操作會先執行構建,然后還會進行鏈接操作,并且把結果檔案搬運到指定目錄,進一步說,如果安裝的是庫原始碼檔案,那么結果檔案會被搬運到它所在作業區的 pkg 目錄下的某個子目錄中,如果安裝的是命令原始碼檔案,那么結果檔案會被搬運到它所在作業區的 bin 目錄中,或者環境變數GOBIN指向的目錄中,
1.5 命令補充
- 運行go build命令時加入標記-x,這樣可以看到go build命令具體都執行了哪些操作,另外也可以加入標記-n,這樣可以只查看具體操作而不執行它們,
- 運行go build命令時加入標記-v,這樣可以看到go build命令編譯的代碼包的名稱,它在與-a標記搭配使用時很有用,
go get會自動從一些主流公用代碼倉庫(比如 GitHub)下載目標代碼包,并把它們安裝到環境變數GOPATH包含的第 1 作業區的相應目錄中,如果存在環境變數GOBIN,那么僅包含命令原始碼檔案的代碼包會被安裝到GOBIN指向的那個目錄, - -u:下載并安裝代碼包,不論作業區中是否已存在它們,
- -d:只下載代碼包,不安裝代碼包,
- -fix:在下載代碼包后先運行一個用于根據當前 Go 語言版本修正代碼的工具,然后再安裝代碼包,
- -t:同時下載測驗所需的代碼包,
- -insecure:允許通過非安全的網路協議下載和安裝代碼包,HTTP 就是這樣的協議,
本文內容來自Go語言核心36講
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/266652.html
標籤:其他
上一篇:HDFS 集群的機架感知
下一篇:學習筆記之——競品分析
