一、windows服務器先本地編譯
go build main.go
編譯后會在同級目錄生成可執行文件
./main.exe
二、linux服務器
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 版本已默認支持所有平台。
結束!