1. 程式人生 > >go語音基礎之工程管理和工作區介紹

go語音基礎之工程管理和工作區介紹

1、工程管理

        在實際的開發工作中,直接呼叫編譯器進行編譯和連結的場景是少而又少,因為在工程中不會簡單到只有一個原始碼檔案,且原始檔之間會有相互的依賴關係。如果這樣一個檔案一個檔案逐步編譯,那不亞於一場災難。 Go語言的設計者作為行業老將,自然不會忽略這一點。早期Go語言使用makefile作為臨時方案,到了Go 1釋出時引入了強大無比的Go命令列工具。

        Go命令列工具的革命性之處在於徹底消除了工程檔案的概念,完全用目錄結構和包名來推導工程結構和構建順序。針對只有一個原始檔的情況討論工程管理看起來會比較多餘,因為這可以直接用go run和go build搞定。下面我們將用一個更接近現實的虛擬專案來展示Go語言的基本工程管理方法。

 

2、工作區介紹

Go程式碼必須放在工作區中。工作區其實就是一個對應於特定工程的目錄,它應包含3個子目錄:src目錄、pkg目錄和bin目錄。

  1.  src目錄:用於以程式碼包的形式組織並儲存Go原始碼檔案。(比如:.go .c .h .s等)
  2.  pkg目錄:用於存放經由go install命令構建安裝後的程式碼包(包含Go庫原始碼檔案)的“.a”歸檔檔案。
  3.  bin目錄:與pkg目錄類似,在通過go install命令完成安裝後,儲存由Go命令原始碼檔案生成的可執行檔案。

       目錄src用於包含所有的原始碼,是Go命令列工具一個強制的規則,而pkg和bin則無需手動建立,如果必要Go命令列工具在構建過程中會自動建立這些目錄。

       需要特別注意的是,只有當環境變數GOPATH中只包含一個工作區的目錄路徑時,go install命令才會把命令原始碼安裝到當前工作區的bin目錄下。若環境變數GOPATH中包含多個工作區的目錄路徑,像這樣執行go install命令就會失效,此時必須設定環境變數GOBIN。