GO项目编译上线
一、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 版本已默认支持所有平台。
结束!