Golang windows下 交叉编译

前言

在进行Go开发的时候,go env 可以设置Go的环境变量信息

GOOS 的默认值是我们当前的操作系统, 如果 windows,linux,注意 mac os 操作的上的值是darwin。

GOARCH 则表示 CPU 架构,如 386,amd64,arm 等。

CMD命令行中

在CMD命令行中编译(示例编译64位linux程序)

// 设置Linux编译环境
// 第一种
SET CGO_ENABLED=0
set GOARCH=amd64
set GOOS=linux

// 第二种
go env -w CGO_ENABLED=0 GOOS=linux

// 开始编译
go build -o ./build/ ./main.go

在windows10之前的系统版本上使用cmd命令行可以使用上述命令编译

在powershell命令行中

在powershell命令行中编译(示例编译64位linux程序)

// 设置Linux编译环境
$env:CGO_ENABLED="0"
$env:GOOS="linux"
$env:GOARCH="amd64"

// 开始编译
go build ./build/ ./main.go

在powershell上,环境变量的设置方式与cmd命令行做出了修改,所以导致目前大部分博客中写的golang的交叉编译命令失效,所以使用windows10 + powershell的用户将设置环境变量的方式修改成上文对应的即可

PS:环境变量参数参考:
GOARCH: amd64, 386, arm, ppc64, …
GOOS: linux, darwin, windows, netbsd, …

环境常用切换

linux 64

SET CGO_ENABLED=0
SET GOOS=linux
SET GOARCH=amd64

windows

SET CGO_ENABLED=1
SET GOOS=windows
SET GOARCH=amd64

linux部署go项目

linux部署go项目

posted @ 2021-01-19 16:08  牛奔  阅读(4010)  评论(0编辑  收藏  举报