Go環境變數和基礎命令

2021-10-02 23:04:10 字數 2294 閱讀 9902

go語言中有一些重要的環境變數,包括$goroot、$gopath、$gobin

還有一些基礎命令也非常重要:go run、go build、go install

windows系統中,可以不配置環境變數,有乙個預設配置

$goroot:go安裝目錄

$gopath:go工作目錄

$gobin:go可執行檔案目錄

示例:設定gopath為d:/gowork

工作區目錄設定如下

|---d:/gowork

|---src/ 存放原始碼檔案,**包

|---pkg/ 用於存放歸檔(靜態)檔案(名稱以.a為字尾的檔案,庫原始碼檔案被編譯後生成的檔案);歸檔檔案將被存放到平台相關目錄下

|---bin/ 存放當前工作區中的go程式可執行檔案

當已經設定了gobin,bin目錄就會變得毫無意義;當gopath中包含多個工作區路徑,則必須設定gobin,否則無法成功安裝go程式可執行檔案

在cmd中使用go env指令,可以檢視go的全部環境變數

其中goos表示作業系統,goarch表示計算架構。例如$goos_$goarch可以是linux_amd64

pkg資料夾下的平台相關目錄,指的就是$goos_$goarch

看基礎命令前,我們先看看原始碼檔案的概念

以.go為字尾,內容為go語言的檔案被稱為原始碼檔案

命令原始碼檔案

宣告自己屬於main**包,且包含main函式的原始碼檔案

庫原始碼檔案

不包含main函式的原始碼檔案,被編譯成.a靜態檔案,供其他包呼叫,相應的歸檔檔案會被存放到pkg平台相關目錄下;

許可權控制:庫原始碼檔案中,函式方法首字母大寫,則其他**包可以訪問該函式,若為小寫,則只能被同一**包訪問

cannot refer to unexported name hello.myfunc

undefined: hello.myfunc

用於執行命令原始碼檔案,只能接受乙個命令原始碼檔案以及若干個庫原始碼檔案(只能是主包的)作為檔案引數

引數:-a 強制編譯相關**,不論它們的編譯結果是否已是最新

-n 列印編譯過程中所需執行的命令,但不執行它們

-p n 並行編譯,其中n為並行數量

-v 列出被編譯的**包的名稱(go1.3及以前,包含go語言自帶的標準庫**包,1.4不包含)

-work 顯示編譯時建立的臨時工作目錄,並且不刪除它

-x 列印編譯過程中所需執行的命令,且執行它們

目錄結構如下

|---d:/gowork

|---src/

|---mytest/

|---test.go

|---hello2.go

|---mypkg/

|---hello.go

|---pkg/

|---bin/

內容

package main

import "mypkg"

func main()

內容

package mypkg

import "fmt"

func myprint1()

內容

package main

import "fmt"

func myprint3()

進入src目錄,使用go run命令如下:

go run mytest/test.go mytest/hello2.go
因為hello2.go被命令原始碼檔案test.go呼叫,且它是主包的庫原始碼檔案,因此在go run指令加上相應檔案引數

go run的工作原理

先對命令原始碼檔案編譯加鏈結(生成可執行檔案存放到臨時資料夾)再執行,一般用於除錯程式。使用-work指令則不會刪除臨時檔案

主要作用為測試編譯

若包含命令原始碼檔案,則會在執行目錄下生成可執行檔案

引數:-a 所有涉及到的**包都會被重新編譯(不加此引數,則只編譯歸檔檔案不是最新的**包)

作用:先編譯相關**包(庫原始碼檔案),生成.a靜態檔案放入pkg平台相關目錄中,若有主檔案(命令原始碼檔案)則最後編譯主檔案,再將可執行檔案放到$gopath\bin中(若設定了$gobin,則放入$gobin中)

將命令原始碼檔案及相關庫原始碼檔案作為引數,只有這些檔案會被編譯並安裝

GO環境變數

go開發環境依賴於一些作業系統環境變數,最好在安裝go之前就已經設定好他們。如果是windows的話,完全不用手動設定,go將被預設安裝在目錄c go下 goroot go被安裝在的位置 goarch 表示目標機器的處理器架構 goos 表示目標機器的作業系統 gobin 表示編譯器和聯結器的安裝位...

go 環境變數

檢視go環境變數路徑 which go 檢視go語言環境資訊 go env 檢視go版本,檢視是否安裝成功 go versiongo的 必須在gopath中,也就是乙個工作目錄,目錄包含三個子目錄 gopath src 存放go源 的目錄,存放golang專案的目錄,所有專案都放到gopath的sr...

Go 環境變數

go 開發環境依賴於一些作業系統環境變數,列舉幾個最為重要的環境變數 goroot 表示 go 在你的電腦上的安裝位置,它的值一般都是 home go,當然,你也可以安裝在別的地方。goarch 表示目標機器的處理器架構,它的值可以是 386 amd64 或 arm。goos 表示目標機器的作業系統...