Implement Golang cross-platform compilation

Release: 2023-07-21 10:03:39
forward
1079 people have browsed it

Cross-platform compilation

Cross-platform compilation, also called cross-compilation, I can do it on the win platform on, compiled into an executable file on the Linux platform.

This is also the reason why Go is so popular. For languages ​​​​such as java, python, php, etc., we usually develop on the win platform and deploy on linux during deployment. Third-party dependencies are more troublesome, not only tiring to develop, but also tiring to operate and maintain. Although Docker now solves this pain point, it should still not be as comfortable as native ones.

If you use Go, no matter what third-party dependencies it is, it will only be packaged into an executable file and deployed directly immediately, and in a high-concurrency way. You don’t need Nginx, but you don’t have to worry about concurrency issues at all.


Example

Compile on win platform into linux platform executable document. cmd Execute the following commands in sequence:

SET CGO_ENABLED=0  // 禁用CGO
SET GOOS=linux  // 目标平台是linux
SET GOARCH=amd64  // 目标处理器架构是amd64
Copy after login

Implement Golang cross-platform compilation

然后执行go build,得到的就是能够在linux上,可执行的文件。

Implement Golang cross-platform compilation

我现在将这个文件上传到我的云服务器上,如下图所示。

Implement Golang cross-platform compilation

之后执行,可以看到,我云服务器上连Go环境都没,但是仍然可以执行成功。

Implement Golang cross-platform compilation

Windows下编译Mac平台64位可执行程序:

SET CGO_ENABLED=0
SET GOOS=darwin
SET GOARCH=amd64
go build
Copy after login

Mac 下编译 Linux 和 Windows平台 64位 可执行程序:

CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build
Copy after login

Linux 下编译 Mac 和 Windows 平台64位可执行程序:

CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build
Copy after login

The above is the detailed content of Implement Golang cross-platform compilation. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:Go语言进阶学习
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!