Go-env


  1. 如何判斷 go 已經在windows上安裝好

 
要檢查您的Windows計算機上是否已經安裝了Go編程語言,可以按照以下步驟進行操作:
  1. 打開命令提示符:在Windows搜索欄中輸入“cmd”,然後單擊“命令提示符”應用程序。
  2. 在命令提示符中鍵入以下命令:
複製代碼
go version
  1. 如果您已經成功安裝了Go語言,將會出現類似於以下內容的輸出:
複製代碼
go version go1.16.3 windows/amd64
這表明Go版本爲1.16.3,平臺爲Windows 64位,因此說明Go已經在Windows上安裝好了。如果未出現任何版本信息,則表示沒有安裝或者您需要添加Go二進制文件路徑到系統環境變量中
 
  1. 使用go env命令就可以查看 Go 的環境變量

使用go env命令就可以查看 Go 的環境變量,不帶參數打印所有環境變量:
λ go envset GOARCH=amd64
set GOBIN=
set GOCACHE=C:\Users\zhuyadong\AppData\Local\go‐build
set GOEXE=.exe
set GOFLAGS=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOOS=windows
set GOPATH=C:\Users\zhuyadong\go
set GOPROXY=https://goproxy.io
set GORACE=
set GOROOT=D:\Program\Go
set GOTMPDIR=
set GOTOOLDIR=D:\Program\Go\pkg\tool\windows_amd64
set GCCGO=gccgo
set CC=gcc
set CXX=g++
set CGO_ENABLED=1
set GOMOD=
set CGO_CFLAGS=‐g ‐O2
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=‐g ‐O2
set CGO_FFLAGS=‐g ‐O2
set CGO_LDFLAGS=‐g ‐O2
set PKG_CONFIG=pkg‐config
set GOGCCFLAGS=‐m64 ‐mthreads ‐fmessage‐length=0 ‐fdebug‐prefix‐map=C:\Temp
 
 
  1. go 1.15 需要手動配置goroot嗎,從哪個版本不需要配置

從Go 1.8版本開始,GOROOT環境變量便不再需要手動進行配置。對於Go 1.8及以上版本,Go安裝程序會自動將Go二進制文件和工具鏈安裝在默認位置中,不必再手動配置GOROOT環境變量。
因此,對於您提出的Go 1.15版本,也不需要手動配置GOROOT環境變量,除非您想將Go安裝到自定義的目錄下並使用非默認的安裝路徑。
 
  1. 常用的Go命令

以下是常用的Go命令、描述以及作用的表格:
命令 描述 作用
go build 編譯代碼 將Go源代碼編譯成可執行文件或庫文件,生成的二進制文件可以在同一平臺的其他機器上運行
go run 編譯並運行代碼 直接編譯並運行Go源代碼,不需要生成可執行文件
go fmt 格式化代碼 自動格式化Go代碼以符合Go官方的格式規範
go get 下載和安裝依賴包 下載並安裝指定的第三方依賴包到本地計算機,同時也可用於更新依賴包到最新版本
go test 測試代碼 運行Go測試文件並輸出測試結果
go doc 查看文檔 查看指定標準庫或第三方依賴包的文檔
go mod 管理依賴關係 使用Go Modules管理項目的依賴關係,確保依賴包的版本號和依賴關係正確
除了上述常用命令之外,還有其他許多Go命令,如:go install, go clean, go vet, go tool等。這些命令都提供了豐富的功能來幫助您更高效地開發和調試Go應用程序。
 
  1. 包管理

由於國內衆所周知的網絡原因,不能直接訪問 golang 的官方網站,由此導致不能自動安裝依賴項,這也是搭建 Go 開發環境最麻煩的地方。爲解決網絡問題,有以下幾種方法:
1)方法1:找一個可用的 VPN 2)方法2:安裝失敗後,查看日誌,到 github.com 上查找對應的庫,下載到本機的對應位置,再執行 go install 進行安裝。 3)方法3:使用 gopm 包管理工具,後面詳解。 4)方法4:啓用 Go Modules,並設置 GOPROXY 使用代理。
 
這裏提供手動安裝依賴的方法,只需要安裝一次,其它各種開發環境都可以共享使用。
  1. go module

自從 Go 官方推出 v1.11 之後,增加新的依賴管理模塊並且更加易於管理項目中所需要的模塊。
模塊是存儲在文件樹中的 Go 包的集合,其根目錄中包含 go.mod 文件。
go.mod 文件定義了模塊的路徑,它也是用於根目錄的導入路徑,以及它的依賴性要求。
每個依賴性要求都被寫爲模塊路徑和特定語義版本。
 
從 Go 1.11 開始,Go 允許在 $GOPATH/src 外的任何目錄下使用 go.mod 創建項目。在 $GOPATH/src 中,爲了兼容性,Go 命令仍然在舊的 GOPATH 模式下運行。
當 module 功能啓用時, GOPATH 在項目構建過程中不再擔當 import 的角色,但它仍然存儲下載的依賴包,具體位置在 $GOPATH/pkg/mod
爲了保持與兼容,環境變量如下設置:
  • GOROOT : 不需要設置,設置了也沒關係
  • GOPATH : 保持默認。設置其它目錄也可以,但 項目代碼 不能放在%GOPATH%\src 目錄下,否則 go module 需要明確啓用
  • GO111MODULE : 保持默認。
  • GOPROXY : 值爲 https://goproxy.io 。設置代理,啓用模塊後,用於下載需要FQ才能訪問的包。
  • 其它可用的代理網址:
https://goproxy.io https://athens.azurefd.net https://goproxy.cn https://gocenter.io
Go官方推出官方模塊代理是 https://proxy.golang.org (被牆狀態);github上的鏡像倉庫:https://github.com/goproxyio/goproxy 。
這樣設置的好處是,當項目源代碼在 %GOPATH%\src 目錄下時,使用舊版本的模式查 找第三方工具、包;當項目源代碼不在 %GOPATH%\src 目錄下,並且其父路徑上的任 何一個目錄有 go.mod 文件,就自動啓用 go module。
GO111MODULE 有以下幾種值:
  • off:go 命令行將不會支持 module 功能, 尋找依賴包的方式將會沿用舊版本那種通過 vendor 目錄或者 GOPATH 模式來查找。
  • on:go命令行會使用 modules,而一點也不會去 GOPATH 目錄下查找。
  • auto:默認值,go 命令行將會根據當前目錄來決定是否啓用 module 功能。這種情況下可以分爲兩種情形:當前目錄在 GOPATH/src 之外,且該目錄包含go.mod 文件,或者該目錄是包含 go.mod 文件的目錄的子目錄。
打開命令行,保證當前目錄不是 %GOPATH% 及其子目錄,執行 go get 即可正常安裝第三方工具包。
 
set GOPROXY=https://mirrors.cloud.tencent.com/go/,direct
  1. go 項目中的 module, make ,makefile 三者是什麼關係

Go 項目中的 Module、Make 和 Makefile 是三個不同的概念,它們之間存在一定的關係。
Module 是 Go 1.11 版本引入的一種包管理機制,用於管理項目依賴關係和版本號。通過定義一個 go.mod 文件來指定項目依賴項,可以方便地下載和安裝第三方庫,並確保依賴項的版本與關係正確。
 
Make 是一個常用的工具,用於基於 Makefile 文件自動化執行一系列操作。在 Go 項目中,Make 常被用於構建、測試、打包、部署等任務,以簡化這些繁瑣的操作流程。
 
Makefile 是一個文本文件其中包含了一系列規則和命令,用於告訴 Make 工具如何編譯、鏈接、打包和發佈項目代碼。通過編寫 Makefile 文件,可以定義一些“目標”(Targets),每個目標都對應着一組需要執行的命令,從而實現自動化構建和管理項目的目的。
 
因此,Module、Make 和 Makefile 在 Go 項目中都有各自的作用。
  • Module 用於管理依賴項和版本號,
  • Make 用於自動化執行操作,
  • Makefile 用於定義規則和命令。
 
在實際開發中,這三個概念常常結合使用,以提高開發效率和代碼質量。
例如,可以使用 Makefile 定義一些常用的構建指令,如編譯、測試、靜態代碼分析、構建 Docker 鏡像等,同時使用 Module 管理依賴關係,確保依賴包的版本號和依賴關係正確。
 
 
 
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章