go语言终端交叉编译的事项windows编译其它平台软件包

交叉编译的终极版本[以此为准]:

windows编译窗口目前分为cmd窗口,powershell窗口,这两个里面运行的命令不一样。

1.cmd窗口编译;

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

CMD命令行中
在CMD命令行中编译(示例编译64位linux程序),【打开一个cmd窗口一行行执行下面的命令;】

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

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

备注:修改的环境只是在当前的cmd窗口修改,不影响整体环境,也就是这个窗口修改后,关闭,在重新打开就是还是默认的配置内容;

2.powershell窗口编译;

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

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

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

3.设置环境后,在自己的命令行窗口运行 go env命令,查看你刚刚修改的参数是否修改了,修改后,即可进行编译;

set GOARCH=amd64
set GOOS=linux

3.1 cmd环境下的参数修改成功式样;

go语言终端交叉编译的事项windows编译其它平台软件包_第1张图片

3.2powershell环境下的参数修改成功

go语言终端交叉编译的事项windows编译其它平台软件包_第2张图片


4.这个窗口关闭后,默认参数还是原来的参数;,不用恢复命令








下面是历史版本;可以借鉴,但是不建议使用




===============================================

一、可以使用的编译环境

go env 查看编译的环境


1.编译linux 64环境[centos7以及以上版本]
go env -w GOOS="linux"
go env -w GOARCH="amd64"

=============================
2.编译linux 32环境[centos6以及以下版本]
go env -w GOOS="linux"
go env -w GOARCH="386"

3.windows10默认信息【修改上述linux环境的时候,在修复后回去】


系统默认:
go env -w GOOS="windows"
go env -w GOARCH="amd64"

备注:时刻关注 go env  命令查询上面的参数是否是你需要的

修改后的效果go env

go语言终端交叉编译的事项windows编译其它平台软件包_第3张图片

使用后再修改会默认信息

编译命令:

go build -o ./"要生成的文件 .\源代码

go build -o ./w1N386 .\w1.go
 


 打包后,把默认环境修改回去

win10系统默认:
go env -w GOOS="windows"
go env -w GOARCH="amd64"



下面都是历史内容:


==========================================

下面的的内容在win10 go1.20的版本上编译还是不好用



二、交叉编译事项

2.1查询当前交叉编译支持的版本【操作都是在编译器golangd的命令行下】

  1. go tool dist list

  2. 查询当前交叉编译支持的版本

go tool dist list

go语言终端交叉编译的事项windows编译其它平台软件包_第4张图片

 2.2golang 交叉编译牵涉到三个变量

 
golang 交叉编译牵涉到三个变量
 
 
CGO_ENABLED = 0   #表示设置CGO工具不可用,使用go自己的编译器
GOOS:#目标操作系统
GOARCH  #表示程序构建环境的目标计算架构 比如:386,amd64,arm,arm64,ppc64,ppc64le,mips,mipsle,mips64,mips64le
386为32位 amd64位64位系统
 

 2.3编译命令的运行办法:【一个个命令运行,不要都是写在一行,单独都是一行】

在golang的终端修改,不影响整体的环境,修改后,你可以在外面找个终端,go env原来的环境保持不变。

linux 386{32位环境的配置}

SET CGO_ENABLED=0  
SET GOOS=linux  
SET GOARCH=386 
go build -o ./w1  w1.go
 

go语言终端交叉编译的事项windows编译其它平台软件包_第5张图片

 go语言终端交叉编译的事项windows编译其它平台软件包_第6张图片

 2.4常在windows下编译其它平台的命令;

linux x64{64位环境的配置}

SET CGO_ENABLED=0  
SET GOOS=linux  
SET GOARCH=amd64
go build -o

./w1  w1.go

2.5注意事项

尽量不要用cmd的环境编译,在golang中编译或者

用powershell编译

go语言终端交叉编译的事项windows编译其它平台软件包_第7张图片

 go语言终端交叉编译的事项windows编译其它平台软件包_第8张图片

 在运行刚刚的命令进行编译



补充资料;========可以借鉴,没有必要使用!!!========

一、交叉编译环境问题解决

可选步骤:不一定好用


这个可以修改,成cmd的方式,但是后期再gobuild编译的时候容易出错

go语言终端交叉编译的事项windows编译其它平台软件包_第9张图片

 是不是cmd的版本低,不能支持go编译了

我是在windows10上采用交叉编译的办法,编译linux下的程序包括x64,i386也就是64位和32位的程序,使用默认的golang的终端编译报错

go语言终端交叉编译的事项windows编译其它平台软件包_第10张图片

 那如何修改成为“cmd”的终端的方式呢;

1.修改终端默认的powershell

打开golangd之后直接进去setting(设置)——>tools(工具)——>terminal(终端)——>shellpath(shell路径)——>点击右边那个指定到你下载的路径就可以了找到exe文件——>apply(应用)——>close(关闭)就完成

 go语言终端交叉编译的事项windows编译其它平台软件包_第11张图片

 go语言终端交叉编译的事项windows编译其它平台软件包_第12张图片

 //windows下使用go编译器编译32位linux可执行程序
SET CGO_ENABLED=0  SET GOOS=linux  SET GOARCH=386 go build w1.go

 go语言终端交叉编译的事项windows编译其它平台软件包_第13张图片

 这回就是没有报错,问题解决

你可能感兴趣的:(golang,开发语言,后端)