Mac下使用brew安裝go


大學時寫過go的hello world,沒有深入研究過,如今項目中需要將nodejs替換為go,且記錄一下學習過程;

1.Mac上使用brew安裝(brew的使用可以參考我的博客https://www.cnblogs.com/leadership/p/11534116.html),方便快捷

$ brew install go

 

 

出現上面的結果說明安裝成功,我們打開終端輸入go version,查看安裝的go版本

2.配置環境變量

查看go的環境變量配置:

$ go env

顯示如下:

GO111MODULE=""

GOARCH="amd64"

GOBIN=""

GOCACHE="/Users/xin.zhu/Library/Caches/go-build"

GOENV="/Users/xin.zhu/Library/Application Support/go/env"

GOEXE=""

GOFLAGS=""

GOHOSTARCH="amd64"

GOHOSTOS="darwin"

GONOPROXY=""

GONOSUMDB=""

GOOS="darwin"

GOPATH="/Users/xin.zhu/go"

GOPRIVATE=""

GOPROXY="https://proxy.golang.org,direct"

GOROOT="/usr/local/Cellar/go/1.13/libexec"

GOSUMDB="sum.golang.org"

GOTMPDIR=""

GOTOOLDIR="/usr/local/Cellar/go/1.13/libexec/pkg/tool/darwin_amd64"

GCCGO="gccgo"

AR="ar"

CC="clang"

CXX="clang++"

CGO_ENABLED="1"

GOMOD=""

CGO_CFLAGS="-g -O2"

CGO_CPPFLAGS=""

CGO_CXXFLAGS="-g -O2"

CGO_FFLAGS="-g -O2"

CGO_LDFLAGS="-g -O2"

PKG_CONFIG="pkg-config"

GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/fl/b3fnstgj4hv6k8g2scfs91sw0000gn/T/go-build443202818=/tmp/go-build -gno-record-gcc-switches -fno-common"

事實上安裝好后的go已經可以使用了,我們只需要在home下新建go文件夾,就可以在這個目錄下創建go項目,如果不想使用默認的home/go文件夾當作工作空間,可以修改go env中的GOPATH=/xxx/xxx。

3.再來一次hello world

在home/go下新建src/hello目錄,在該目錄中新建hello.go,內容如下:

package main

import "fmt"

func main() {
    fmt.Printf("hello, world\n")
}

在路徑home/go/src/hello下執行 $ go build

然后運行 $ ./hello

輸出:hello, world

4.關於環境變量

$GOROOT 表示 Go 在電腦上的安裝位置,不需要手動配置

$GOBIN 表示編譯器和鏈接器的安裝位置,默認是 $GOROOT/bin,Go 1.0.3 及以后的版本,可以將它的值設置為空,Go 會使用默認值。

$GOPATH  項目存放目錄,默認采用和 $GOROOT 一樣的值, Go 1.1 版本開始,你必須修改為其它路徑。它可以包含多個包含 Go 語言源碼文件、包文件和可執行文件的路徑,而這些路徑下又必須分別包含三個規定的目錄:src、pkg 和 bin,這三個目錄分別用於存放源碼文件、包文件和可執行文件。

$GOARCH 表示目標機器的處理器架構,它的值可以是 386、amd64 或 arm。

$GOOS 表示目標機器的操作系統,它的值可以是 darwin、freebsd、linux 或 windows。

$GOARM 專門針對基於 arm 架構的處理器,它的值可以是 5 或 6,默認為 6。

$GOMAXPROCS 用於設置應用程序可使用的處理器個數與核數

Go 編譯器支持交叉編譯,就是說編寫源代碼的機器可以和應用程序的機器有完全不同的操作系統或處理器架構。

為了區分本地機器和目標機器,可以使用 $GOHOSTOS 和 $GOHOSTARCH 設置本地機器的操作系統名稱和編譯體系結構,這兩個變量只有在進行交叉編譯的時候才會用到,如果不進行顯示設置,他們的值會和本地機器($GOOS 和 $GOARCH)一樣。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM