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

这篇具有很好参考价值的文章主要介绍了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 ./w1N386 .\w1.go

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

2.powershell窗口编译;

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

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

// 开始编译go build -o ./w1N386 .\w1.go

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

set GOARCH=amd64
set GOOS=linux

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

go语言终端交叉编译的事项windows编译其它平台软件包,golang语言实战代码,golang,开发语言,后端

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

go语言终端交叉编译的事项windows编译其它平台软件包,golang语言实战代码,golang,开发语言,后端


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

5.编译成待图标格式的exe文件,参照这个博客

Go在Window平台下编译出来的exe如何添加一个图标--推荐使用_雨师@的博客-CSDN博客

https://ht666666.blog.csdn.net/article/details/124512392







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




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

一、可以使用的编译环境

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编译其它平台软件包,golang语言实战代码,golang,开发语言,后端

使用后再修改会默认信息

编译命令:

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编译其它平台软件包,golang语言实战代码,golang,开发语言,后端

 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编译其它平台软件包,golang语言实战代码,golang,开发语言,后端

 go语言终端交叉编译的事项windows编译其它平台软件包,golang语言实战代码,golang,开发语言,后端

 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编译其它平台软件包,golang语言实战代码,golang,开发语言,后端

 go语言终端交叉编译的事项windows编译其它平台软件包,golang语言实战代码,golang,开发语言,后端

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



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

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

可选步骤:不一定好用


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

go语言终端交叉编译的事项windows编译其它平台软件包,golang语言实战代码,golang,开发语言,后端

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

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

go语言终端交叉编译的事项windows编译其它平台软件包,golang语言实战代码,golang,开发语言,后端

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

1.修改终端默认的powershell

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

 go语言终端交叉编译的事项windows编译其它平台软件包,golang语言实战代码,golang,开发语言,后端

 go语言终端交叉编译的事项windows编译其它平台软件包,golang语言实战代码,golang,开发语言,后端

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

 go语言终端交叉编译的事项windows编译其它平台软件包,golang语言实战代码,golang,开发语言,后端

 这回就是没有报错,问题解决文章来源地址https://www.toymoban.com/news/detail-598352.html

到了这里,关于go语言终端交叉编译的事项windows编译其它平台软件包的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Golang】go交叉编译

    交叉编译是用来在一个平台上生成另一个平台的可执行程序 。Go 命令集是原生支持交叉编译的。 Mac下编译:Linux 或 Windows 的可执行程序 Linux下编译:Mac 或 Windows的可执行程序 Windows下编译:Mac 或 Linux的可执行程序 需要写一个批处理程序,在里面去设置,因为windows 下的 ter

    2024年02月10日
    浏览(37)
  • termux下go交叉编译和依赖包引用

    交叉编译windows的exe export GOPROXY=https://proxy.golang.com.cn,direct go mod tidy 必须写在一行 CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build hello3.go If you are experiencing issues with downloading packages from the official Go module proxy, you can try using an alternative proxy like goproxy.cn . This is a popular Go module proxy server in C

    2024年02月03日
    浏览(23)
  • 一文搞懂交叉编译,Windows和Linux的交叉编译

    在一种计算机环境中运行的编译程序,能编译出在另外一种环境下运行的代码,我们就称这种编译器支持交叉编译。这个编译过程就叫交叉编译。简单地说,就是在一个平台上生成另一个平台上的可执行代码。这里需要注意的是所谓平台,实际上包含两个概念:体系结构(

    2024年02月07日
    浏览(53)
  • Qt交叉编译到arm平台

    从网上下载对应版本的Qt源码 https://download.qt.io/archive/qt/5.9/5.9.3/single/,我下载的是5.9.3的版本。 解压到ubuntu上 下载使用gcc 4.9.4编译器,并配置环境变量。(尽量选择高版本编译器) 配置Qt相关的编译器,使用linux-arm-gnueabi前缀, cd qtbase/mkspecs 修改qmake.conf文件,更改编译器为

    2024年02月11日
    浏览(36)
  • live555交叉编译(ubuntu+arm平台)

    1.下载源码 ​​​​​​http://live555.com/liveMedia/public/live555-latest.tar.gz 2.解压 tar -zxvf live555-latest.tar.gz 3.修改配置文件 1)进入live文件夹 2)复制一份配置文件 cp config.armlinux config.myarmlinux chmod 777 config.myarmlinux 3) vim config.myarmlinux 命令行-删除全部配置 4) 修改为 5.编译执行

    2024年02月05日
    浏览(46)
  • Windows 交叉编译之 make

    以下内容为本人的学习笔记,如需要转载,请声明原文链接 微信公众号「ENG八戒」https://mp.weixin.qq.com/s/w8YV_TUb4QwsgChu3AspHg Make 本来是一个在 linux 环境下用于控制程序和相关文件生成的工具。Make 工作过程需要辅以 makefile 文件指导生成过程和列出需要的原材料,比如源文件、依

    2024年02月16日
    浏览(42)
  • Mac M1 解决Go交叉编译成linux文件报错问题

    1、brew下载编译成linux的所需环境 这一步下载需要使用国内的镜像,我使用的是清华的镜像下载的,下载的过程中会因为一下问题中断,你直接在终端一直重新输入以上命令 2、如果还不行就需要配置go env 这个问题搞了我两天基本上把所有的论坛都找了一个遍,最后通过go官网

    2024年02月03日
    浏览(62)
  • golang 记录交叉编译sqlite的报错信息 go build -ldflags

    go build -ldflags ‘-s -w --extldflags “-static -fpic”’ -o go-web main.go command-line-arguments /tmp/go-link-1199555067/000015.o: In function ‘unixDlOpen’: /root/go/pkg/mod/github.com/mattn/go-sqlite3@v1.14.6/sqlite3-binding.c:40175: warning: Using ‘dlopen’ in statically linked applications requires at runtime the shared libraries from the gl

    2024年02月04日
    浏览(33)
  • 基于Linux平台交叉编译 flutter arm64应用

        操作系统ubuntu 20.04,开发工具Android Studio + Flutter,运行平台RK3566 Linux。截止现在Flutter官方尚未正式对Linux arm64进行支持,仅有flutter-elinux可用。开发环境的搭建过程遇到了很多的坑,幸运的是最终完成了。为避免后来者再次浪费时间,特撰此文以飨读者。     本文仅记

    2024年02月06日
    浏览(55)
  • 【一、搭建通用Arm平台的QT交叉编译环境】

    为实现目标嵌入式平台能够正常运行Qt程序,则需要在目标平台上部署QT运行环境。 Ubuntu系统,本文使用的是20.04版本 arm平台通用交叉编译工具链 QT源码 1.下载工具链 点击链接https://releases.linaro.org/components/toolchain/binaries/latest-7/arm-linux-gnueabi/,选择下图中标识的文件进行下载。

    2023年04月16日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包