到目前為止都是在Windows上透過VSCode在處理,但東西最終都是要上到Linux環境上跑的,轉移的過程中順便記錄一下安裝步驟:
1)最先安裝EPEL的額外開發套件
# yum install epel-release
2)接著安裝Golang的本體
# yum install golang
安裝完畢後可以先行確認一下Go的相關環境設定
# go env
GOARCH="amd64"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH=""
GORACE=""
GOROOT="/usr/lib/golang"
GOTOOLDIR="/usr/lib/golang/pkg/tool/linux_amd64"
CC="gcc"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build235891392=/tmp/go-build"
CXX="g++"
CGO_ENABLED="1"
3)GOPATH設定
這裡可以看到GOPATH尚未被設定,GOPATH的位置將會影響日後使用go get下載的第三方函式庫的存放位置以及平常import package的參考位置,因為Linux上在import無法使用相對路徑,因此專案位置也必須一併增加到GOPATH上,當有複數個GOPATH時,go get下載的函式庫默認放到第一個GOPATH裡,在Windows上使用分號區隔( ; ),Linux則是使用冒號( : )。
特別需要注意的是,import package的參考位置會在GOPATH中默認再加上/src
# export GOPATH=$HOME/go:/mySource
像這樣設定便是將下載的package放到$HOME/go底下統一管理,但自己project子目錄的import也可以正常使用
4)應該馬上會發現go get還無法使用,網路上看到的建議通常是安裝hg,但假如東西都在git上的話安裝git也是一樣
# yum install git
or
# yum install hg
5)最後要處理的是import問題,之前在Windows上寫的時候,以下面這個資料夾為例
myProject/
| - main.go
| - client/
| - client.go
在main.go中直接
import (
client "./client"
)
是沒有問題的,但在Linux裡這種相對位置的寫法會無法找到正確的package,因此必須使用前面提到的GOPATH來指定package位置才行,因此最後的import也會變成
import (
client "myProject/client"
)
不要忘記你的myProject前面還必須要有一層/src,例: /mySource/src/myProject
6)修改過後重新進行編譯
# go build
程式終於可以順利地被產出了
下一篇: