一、可以使用的编译环境
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 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的命令行下】
go tool dist list
查询当前交叉编译支持的版本
go tool dist list
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
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编译
在运行刚刚的命令进行编译
补充资料;========可以借鉴,没有必要使用!!!========
一、交叉编译环境问题解决
可选步骤:不一定好用
这个可以修改,成cmd的方式,但是后期再gobuild编译的时候容易出错
是不是cmd的版本低,不能支持go编译了
我是在windows10上采用交叉编译的办法,编译linux下的程序包括x64,i386也就是64位和32位的程序,使用默认的golang的终端编译报错
那如何修改成为“cmd”的终端的方式呢;
1.修改终端默认的powershell
打开golangd之后直接进去setting(设置)——>tools(工具)——>terminal(终端)——>shellpath(shell路径)——>点击右边那个指定到你下载的路径就可以了找到exe文件——>apply(应用)——>close(关闭)就完成
//windows下使用go编译器编译32位linux可执行程序
SET CGO_ENABLED=0 SET GOOS=linux SET GOARCH=386 go build w1.go
这回就是没有报错,问题解决