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环境下的参数修改成功式样;

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


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 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

 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

 

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/28100.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Unity 实用插件篇】| ReferenceFinder 引用查找插件,提高引擎查找使用效率

前言 【Unity 实用插件篇】| ReferenceFinder 引用查找插件,提高引擎查找使用效率一、ReferenceFinder 介绍二、使用示例三、实现方案3.1 方案选择3.2 查找及缓存3.3 界面实现 总结 前言 ReferenceFinder 是一个比较小众的插件,主要用来查找资源引用和…

Premiere Pro 2023(23.5) Mac

Premiere Pro是一个业界领先的视频编辑软件,旨在帮助用户快速、高效地制作和编辑专业质量的视频内容。作为Creative Cloud套装中的一部分,Premiere Pro具有丰富的功能和工具,可应对各种视频编辑需求。 Premiere Pro的主要特点包括多个视频和音…

竹云IDaaS | 全面融合AWS Cognito

AWS Cognito组件用户池User Pool国内暂未上线,身份云IDaaS可完全替代Cognito用户池,借助身份云进行用户身份验证并融合Coginto身份池Identity Pool,实现对AWS资源的无缝安全访问。 企业面临的挑战 AWS Cognito中国站暂未提供用户池User&…

OpenCV for Python 学习第五天:图片属性的获取

上一篇博文当中,我们学习了如何获取图片的通道,我们了解了通道的分离方法split()和通道的组合方法merge()。那么我们今天就来对图片的属性做一个深入的了解。 文章目录 图片属性OpenCV中属性介绍图片属性的获取 图片属性 图片属性是指描述和定义一张图片…

数字IC后端设计实现中的Post-mask ECO应该怎么做?

在数字IC后端设计实现中,我们经常会涉及到芯片需要做Function ECO。常见的Function ECO可以分为pre mask ECO和post mask ECO两种。因此,作为一个数字IC后端工程师,必须熟练掌握这两种Function ECO的实现流程及其实现技巧。 两者的区别在于&…

SQL-每日一题【585.2016年的投资】

题目 Insurance 表: 请你编写一个 SQL 查询,报告 2016 年 (tiv_2016) 所有满足下述条件的投保人的投保金额之和: 他在 2015 年的投保额 (tiv_2015) 至少跟一个其他投保人在 2015 年的投保额相同。他所在的城市必须与其他投保人都不同&#…

【Spring——Spring的基础与创建】

目录 🍧1. 什么是 Spring ? 🫖1.1 容器 🍙1.2 IoC 🥽1.3 汽车类——传统写法 🍘1.4 汽车类——IoC 写法 🌭2. 配置 maven 国内源 🌮2.1 在设置中勾选文件 🍤2.2 在…

自动化测试selenium(1)

自动化测试📪selenium 自动化测试📪selenium自动化测试📑selenium定位元素📍 实战测试百度搜索🔍安装测试环境Idea中进行自动化脚本编写打开网页:实现搜索功能:浏览器清空效果clear()&#xff1…

使用typora+PicGo+Gitee简单实现图片上传功能

本文通过配置PicGoGitee来实现typora图片上传功能,系统是window 注意下载的清单有:PicGo,node.js,配置有:PicGo,node.js,gitee,typora 看着复杂实际上并不难,只是繁琐&am…

基于时域特征和频域特征组合的敏感特征集,再利用CNN进行轴承故障诊断(python编程)

1.文件夹介绍(使用的是CWRU数据集) 0HP-3HP四个文件夹装载不同工况下的内圈故障、外圈故障、滚动体故障和正常轴承数据。 2.模型 按照1024的长度分割样本,构建内圈故障、外圈故障、滚动体故障和正常轴承样本集 2.1.计算11种时域特征值 # 计…

专题-【线索二叉树】

15年三-1) 20年一-11)

MYSQL表操作(DML,DDL)

建表并插入数据: mysql> create table worker(-> dept_id int(11) not null,-> emp_id int (11) not null,-> work_time date not null,-> salary float(8,2) not null,-> poli_face varchar(10) not null default 群众,-> name varchar(20) …