当前位置:首页 > Golang杂记 > 正文内容

windows下编译linux可执行程序

1年前 (2021-10-01)Golang杂记1069

开发中,我们可以在Windows下编译Linux 64位可执行程序,首先获取目标系统所支持的构架,比如x86/x64/arm64/arm 等等。

在 linux 系统中,我们可以使用命令 uname -a 查看系统的一些信息;以我的机器来说,

如果你看到 arm64之类的字样,表明你的系统是支持这种架构的程序的。

[zhoubotong@iZ8vb6fwt8t7vnv7023zs6Z ~]$ uname -a
Linux iZ8vb6fwt8t7vnv7023zs6Z 3.10.0-957.12.2.el7.x86_64 #1 SMP Tue May 14 21:24:32 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

这里我的是x86架构。所以我们只需要将写好的go语言编译成这类架构的Linux程序即可。

在 windows 系统 CMD下,输入命令:go env 查看 go的环境变量。

其中有两个参数对于跨平台编译至关重要。一个为 %GOOS,一个为%GOARCH。在Windows系统下,%GOOS默认为 windows,%GOARCH 为 amd64 (根据系统不同,可能有所不同)。

要将程序编译为Linux程序,需设置 %GOOS 为 linux,且%GOARCH为Linux系统支持的架构。


在CMD下,输入(注意在CMD窗口执行,不要在Git Bash来执行命令):

SET GOOD=linux
SET GOARCH=adm64
go build xxx.go

编译GO程序即可,如无意外,会在工作目录生成一个无扩展名的文件,我们就可以在Linux系统下运行它了。

比如这里会生成一个没有后缀的xxx二进制文件,将该文件放入linux系统某个文件夹下赋予权限

chmod 777 xxx

执行 ./xxx

提醒:Linux系统下运行程序需要为新文件赋予可执行权限

我们可以使用这种方法在Windows系统下编译出其它平台的可执行程序,相反,也可以在Linux系统下编译出Windows平台的可执行程序。

如果想改回来,改下GOOS即可:

set GOOS=windows


    扫描二维码推送至手机访问。

    版权声明:本文由周伯通的博客发布,如需转载请注明出处。

    本文链接:https://www.zhoubotong.site/post/31.html

    分享给朋友:

    相关文章

    Go 自定义error错误

        Go的error比较灵活.但是自身对error处理的机制有不太好用,我们可以自定义错误输出: 只要所有实现了 Error()&nbs...

    Go遍历struct,map,slice

    遍历结构体如何实现遍历结构体字段? 好吧,言归正传!举个例子:demo1:package main import (    "fmt...

    NewReplacer使用技巧

            上次写博客至今有段时间了,这些日子,认真过,努力过,职场中不管有哪些让人失意或不快的事,终归到底,是自己...

    Golang中字符串、数组、切片排序

    使用Golang的sort包用来排序,包括二分查找等操作。下面通过实例代码来分享下sort包的使用技巧:package main import (   ...

    发表评论

    访客

    看不清,换一张

    ◎欢迎参与讨论,请在这里发表您的看法和观点。