GO專案編譯上線

2022-01-12 15:45:31 字數 1816 閱讀 2915

go build main.go
編譯後會在同級目錄生成可執行檔案

./main.exe
2.1 伺服器上去編譯

安裝go,配置gopath

第一步,把伺服器上配置成本地一樣的環境

第二部,包括專案裡面所依賴的包

第三步,專案原始碼拷貝到與伺服器,伺服器上編譯

go build main.go
編譯後會在同級目錄生成可執行檔案

./main
執行。如果想讓專案在後台執行:執行 

nohup ./main &
這樣就可以程式在後台執行了。

注意:發現如果按照官方給的安裝方法只指定goroot的路徑,於是自己新建乙個目錄gopath 作為gopath 的目錄,並且設定環境變數(exportgopath=/newhome/go/gopath)。

在gopath下新建3個資料夾(模仿windows gopath的方式,也是go語言的工作環境目錄)分別為 src、pkg、bin目錄。

2.2 本地編譯

第一步:cmd控制台到main.go檔案目錄下,執行下面的操作。

set goarch=amd64

set goos=linux

go build main.go

會生成乙個沒有字尾的二進位制檔案

main
第二步:將該檔案放入linux系統某個資料夾下

rz main
第三步:賦予許可權

chmod 777 main
最後執行 

./main
如果想讓專案在後台執行:執行 

nohup ./main &
這樣就可以程式在後台執行了。

mac 下編譯 linux 和 windows 64位可執行程式

1 cgo_enabled=0 goos=linux goarch=amd64 go build main.go

2 cgo_enabled=0 goos=windows goarch=amd64 go build main.go

linux 下編譯 mac 和 windows 64位可執行程式

1 cgo_enabled=0 goos=darwin goarch=amd64 go build main.go

2 cgo_enabled=0 goos=windows goarch=amd64 go build main.go

windows 下編譯 mac 和 linux 64位可執行程式

1 set cgo_enabled=0

2 set goos=darwin

3 set goarch=amd64

4 go build main.go

5 6 set cgo_enabled=0

7 set goos=linux

8 set goarch=amd64

9 go build main.go

goos:目標平台的作業系統(darwin、freebsd、linux、windows)

goarch:目標平台的體系架構(386、amd64、arm)

交叉編譯不支援 cgo 所以要禁用它

上面的命令編譯 64 位可執行程式,你當然應該也會使用 386 編譯 32 位可執行程式

很多部落格都提到要先增加對其它平台的支援,但是我跳過那一步,上面所列的命令也都能成功,且得到我想要的結果,可見那一步應該是非必須的,或是我所使用的 go 版本已預設支援所有平台。

結束!

GO專案編譯及執行

我安裝了go語言環境,使用jetbrains goland開發工具開啟專案,然後 run 報錯了。錯誤定位在主函式main.go裡,這一句 import fmt github.com go sql driver mysql 就說找不到相關的包。我不太清楚確切的因由,像 github.com go s...

go 專案構建及編譯

src 源 檔案 pkg 包檔案 bin 相關bin檔案 1 建立工程資料夾 goproject 2 在工程資料夾中建立 src,pkg,bin 資料夾 3 在gopath中新增project路徑 例 e goprojet 4 如工程中有自己的包examplepackage,那麼src資料夾下建立以...

Go專案熱編譯工具gowatch

在golang專案編寫過程中,需要不斷的進行更改 除錯 開發 但是每一次更改完 之後,需要停止服務,再重新編譯執行,才能看到效果,每次手動進行都很麻煩,所以就找了乙個這樣的開源工具gowatch來實時監聽檔案的改動進行編譯。go get github.com silenceper gowatch安裝...