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

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


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

 

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

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在进行QNX(一种实时操作系统)和Windows之间的交叉编译时,我们需要使用特定的编译工具和开发环境来确保代码可以在目标平台上正确编译和运行。 QNX提供了针对Windows平台交叉编译工具链,例如QNX Momentics IDE。这个IDE集成了编译器、调试器和其他开发工具,使得在Windows下进行QNX的交叉编译变得更加方便。 首先,我们需要安装QNX Momentics IDE。安装完成后,我们可以创建一个新的QNX项目,并配置好编译器和目标平台信息。QNX Momentics IDE提供了丰富的工具和选项,可以根据项目需求来配置编译参数、链接库和环境变量等。我们可以在Windows上编写代码,并在QNX Momentics IDE中进行编译和调试。 在进行交叉编译时,我们需要考虑一个重要的问题是目标平台的架构差异。QNX通常运行在ARM、x86等不同的处理器架构上,而Windows通常运行在x86或x86_64架构上。因此,在编译时我们需要确保代码能够正确地针对目标平台进行优化和生成可执行文件。 为了确保交叉编译顺利进行,我们需要在QNX和Windows之间进行必要的设置和协调。这包括正确安装和配置交叉编译工具链、设置环境变量、导入所需的头文件和库文件等。这些设置将确保编译器能够正确地在Windows编译生成适用于QNX的目标代码。 总而言之,QNX和Windows交叉编译需要使用特定的工具链和开发环境,如QNX Momentics IDE,以确保代码可以正确地在目标平台编译和运行。通过正确配置和协调两个平台之间的设置,我们可以轻松地进行QNX和Windows之间的交叉编译。 ### 回答2: QNX是一个嵌入式实时操作系统,而Windows是一个通用桌面操作系统。交叉编译是将软件在一种操作系统上编译生成在另一种操作系统上执行的二进制文件的过程。 在QNX上进行Windows交叉编译是可能的,这可以在开发嵌入式系统时非常有用。通过交叉编译开发者可以在QNX上为Windows平台编写和测试代码,然后将其移植到Windows操作系统上运行。 在进行QNX和Windows交叉编译时,首先需要安装适当的工具链和交叉编译器。这些工具可用于将QNX系统上的源代码编译Windows平台上可执行的二进制文件。这些工具通常包括编译器、链接器、调试器和其他构建工具。 在配置交叉编译环境后,可以使用适当的命令和标志来执行交叉编译开发者需要指定源代码的位置、目标平台的架构和操作系统等信息。一旦编译过程完成,就可以在Windows平台上运行生成的可执行文件。 需要注意的是,尽管交叉编译可以方便地在QNX上进行Windows开发,但在执行过程中可能会遇到一些平台差异和兼容性问题。因此,在进行交叉编译之前,开发者应该仔细检查和调试代码,确保其在目标平台上的兼容性。 总结而言,QNX和Windows交叉编译允许在嵌入式系统开发过程中在QNX上编写和测试代码,然后将其移植到Windows上运行。这样的开发环境可以提高开发效率并简化软件移植过程。 ### 回答3: QNX与Windows交叉编译是指在Windows操作系统上使用QNX开发工具链来编译运行QNX操作系统或应用程序。 在进行QNX与Windows交叉编译之前,我们需要安装QNX SDK和相关的交叉编译工具。然后,通过配置环境变量、设置路径等步骤,将QNX开发环境与Windows操作系统进行连接。 一旦环境搭建完成,我们就可以开始进行QNX项目的交叉编译了。首先,我们需要编写QNX的源代码,并将其保存在Windows操作系统上。接下来,我们可以使用QNX开发工具链中的编译器,如QCC (QNX C Compiler)来将源代码编译成二进制文件。可以使用命令行或者集成开发环境 (IDE) 来进行编译和构建。 在进行编译时,我们需要注意一些QNX特有的编译选项和参数,以及可能需要调整的库和依赖项路径。这些都可以在编译文档或相关的QNX开发资源中找到。 一旦编译成功,就可以在Windows操作系统上生成QNX可执行文件。但是要注意,由于QNX是一个实时操作系统,所以在不同平台上可能存在一些不兼容的问题。因此,在将程序部署到实际的QNX平台之前,我们需要进行一些测试和调试,以确保程序在QNX上能够正常运行。 总而言之,QNX与Windows交叉编译是通过在Windows操作系统上使用QNX开发工具链来编译运行QNX操作系统或应用程序。这需要进行环境搭建、编写源代码、使用QNX编译器进行编译、解决兼容性问题等一系列步骤。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值