18910140161

使用 golang 的交叉编译生成 windows 可执行文件

顺晟科技

2021-06-16 10:21:20

524

需求场景

公司的IT好像不会用Linux,所以我不敢在Linux上部署一个golang gin服务。我想尝试生成一个windows版本,然后设置为引导自动启动,不用担心。

就是在我的Windows 10 WSL Ubuntu开发环境中,编译了可以在Windows 10上运行的Golang二进制文件。

交叉编译

英语是交叉编译。

交叉编译器(英文:Cross compiler)是指在一个系统平台下可以产生另一个系统平台的可执行文件的编译器。

不如翻译成“跨平台编译”。“十字架”这个词太难理解了。

跨平台编译的意义

开发环境是Linux,运行环境是Windows。反之亦然

目标运行环境不能安装编译环境,比如单片机,单片机没有操作系统,不能直接编译,只能在其他系统上编译。

戈朗的交叉编译

跨平台编译选项:

目标操作系统.详见数字海洋编制的GOOS和GOARCH列表。

目标平台

示例:

$ env GOOS=windows GOARCH=amd64 go build github.com/mholt/caddy/caddy

真实项目编译

以一个golang gin web服务为例:

在Ubuntu下执行

env GOOS=windows GOARCH=amd64 go build-o sunzhongwei.exe

然后将该文件复制到Windows目录,并在PowerShell中执行

PS D:\to_del。\忠威. exe

接入和运行正常。Golang的跨平台编译真的很方便。

GOARCH中386与amd64的区别

386代表32位系统,也称为i386。名字来源于Intel 80386指令集。

Amd64代表64位系统。名字来源于AMD最早发布的64位指令集。

兼容性问题

有些三方库使用cgo,不能在windows下使用。所以尽量使用标准库,避免兼容性问题。

相关文章
我们已经准备好了,你呢?
2024我们与您携手共赢,为您的企业形象保驾护航