Golang在Windows环境下编译出Linux环境下运行的可执行程序

首先,获取目标系统所支持的构架,比如x86/x64/arm64/arm 等等。

在 linux 系统中,可以使用命令uname -a查看系统的一些信息;以作者的机器来说,如果你看到arm64之类的字样,表明你的系统是支持这种架构的程序的。

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

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

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

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

在CMD下,输入:

go env -w GOOS=linux
go env -w GOARCH=adm64

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

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

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

原创内容,如需转载,请注明出处;

本文地址: https://www.perfcode.com/p/1541.html

分类: 计算机技术
推荐阅读:
requests中的超时(timeout)设定和捕获异常 为防止服务器不能及时响应,大部分发至外部服务器的请求都应该带着 timeout 参数。在默认情况下,除非显式指定了 timeout 值,requests 是不会自动进行超时处理的。如果没有 timeout,你的代码可能会挂起若干分钟甚至更长时间。
Nginx+Golang+Gin实现简单的web服务 本文将实现Nginx+Golang+Gin实现web服务,如何安装 gin 框架本文就不说了;
Rust获取命令行参数 所谓的命令行参数,是指程序在命令行或SHELL上运行时后跟的参数;Rust语言中获取命令行参数的方法如下:
Matlab中如何表示无穷大 在MATLAB中,您可以使用关键字inf(不区分大小写)来表示正无穷大,-inf表示负无穷大。
Python this模块的加密原理 this模块的代码(this模块位于Python安装目录/lib下)。定义了2个变量;字符串s和字典d(被定义两次);s很明显是一段密文,d则是密码字典,key和value对应的是密文和原文;chr((i+13)%26 +c) 则是加密算法,其原理是通过向字典d写入KEY为字符A~Z,VALUE为加密后的字符。然后通过字典遍历的方法,匹配出正确的字符。
Rust中宏与函数的区别 宏能够接受不同数量和类型的参数,这使得宏在处理多样化的输入时更加灵活。函数具有明确定义的参数列表和返回值类型,参数数量和类型通常是固定的。