惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

有赞技术团队
有赞技术团队
H
Hackread – Cybersecurity News, Data Breaches, AI and More
I
InfoQ
J
Java Code Geeks
Microsoft Security Blog
Microsoft Security Blog
G
Google Developers Blog
D
DataBreaches.Net
Recent Announcements
Recent Announcements
Microsoft Azure Blog
Microsoft Azure Blog
B
Blog RSS Feed
Y
Y Combinator Blog
博客园 - 【当耐特】
博客园 - 聂微东
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
大猫的无限游戏
大猫的无限游戏
P
Proofpoint News Feed
量子位
C
Check Point Blog
F
Fortinet All Blogs
罗磊的独立博客
Last Week in AI
Last Week in AI
GbyAI
GbyAI
L
LangChain Blog
博客园 - 司徒正美

博客园 - 迪克猪

发布一款vscode仓颉文件图标显示插件Mosmmy Cangjie Icons 用户中心 - 博客园 golang字节数组拷贝BlockCopy函数实现 go module下golang.org如何处理被墙 go: writing stat cache:, permission denied mac os下不同工具go env下gopath显示不同 异类查询要求为连接设置ANSI_NULLS和ANSI_WARNINGS选项 SetProcessWorkingSetSize减少内存占用 mac os系统go安装:go install github.com/nsf/gocode: open /usr/local/go/bin/gocode: permission denied vscode打造最佳的markdown编辑器 "title_activity_dist" is not translated in "zh-rCN" (Chinese: China) android sdk manager更新地址 vscode圣诞帽 阿里java代码检测工具p3c elasticsearch 二、elasticsearch-head安装 elasticsearch 一、环境配置 针对json的查询--alibaba的开源项目jsonq macos下golang 1.9配置 此请求已被阻止,因为当用在 GET 请求中时,会将敏感信息透漏给第三方网站。若要允许 GET 请求,请将 JsonRequestBehavior 设置为 AllowGet。
在 Mac、Linux、Windows 下Go交叉编译
迪克猪 · 2019-12-08 · via 博客园 - 迪克猪

Golang 支持交叉编译,在一个平台上生成另一个平台的可执行程序,最近使用了一下,非常好用,这里备忘一下。

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

1 CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.go
2 CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go

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

1 CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build main.go
2 CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go

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

1 SET CGO_ENABLED=0
2 SET GOOS=darwin
3 SET GOARCH=amd64
4 go build main.go
5 
6 SET CGO_ENABLED=0
7 SET GOOS=linux
8 SET GOARCH=amd64
9 go build main.go

GOOS:目标平台的操作系统(darwin、freebsd、linux、windows)
GOARCH:目标平台的体系架构(386、amd64、arm)
交叉编译不支持 CGO 所以要禁用它

上面的命令编译 64 位可执行程序,你当然应该也会使用 386 编译 32 位可执行程序
很多博客都提到要先增加对其它平台的支持,但是我跳过那一步,上面所列的命令也都能成功,且得到我想要的结果,可见那一步应该是非必须的,或是我所使用的 Go 版本已默认支持所有平台。