Golang交叉编译(跨平台编译)的使用
目录
- 一、何为交叉编译
- 二、交叉编译前的准备
- 安装TDM-GCC
- 三、简述交叉编译
- 四、实练
- 1. 默认编译
- 2.交叉编译一个Arm+Linux
- 小总结
一、何为交叉编译
简单地说,就是在一个平台上生成另一个平台上的可执行代码。同一个体系结构可以运行不同的操作系统;同样,同一个操作系统也可以在不同的体系结构上运行。
二、交叉编译前的准备
本文只介绍Windows平台下的Golang交叉编译
安装TDM-GCC
下载地址:http://tdm-gcc.tdragon.net/download
安装完成后添加TDM-GCC中bin文件夹进环境变量。
三、简述交叉编译
其实保存上面一幅图即可,需记住三个参数,GOOS(Go的目标系统),GOARCH(GO的目标架构)。
设置完成后通过go env查看当前配置。
注意:在不同的命令提示符(CMD)中或关闭重新打开命令提示符,所设置的GOOS和GOARCH是不互通的。也就是可以把GOOS和GOARCH理解为局部变量,不会保存。Golang默认每次build的都是当前系统和架构。
四、实练
1. 默认编译
当前是使用默认配置编译了一个Windows平台下的exe可执行文件,同样我们设置GOOS和GOARCH后再编译看看。
2.交叉编译一个Arm+Linux
在Windows PowerShell中SET 命令似乎无效,有时间再详查什么原因,所以这一步用了CMD。
设置完后同样再运行go bulid即可,就可以得到一个无后缀的linux可执行文件。
小总结
记住3句代码,及其支持的系统。这个在第三节已经给出。
SET GOOS=xxxSET GOARCH=xxxgo env
到此这篇关于Golang交叉编译(跨平台编译)的使用的文章就介绍到这了,更多相关Golang 交叉编译内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
相关推荐
-
Golang在Mac、Linux、Windows下如何交叉编译的实现
Golang 支持交叉编译,在一个平台上生成另一个平台的可执行程序,最近使用了一下,非常好用,这里备忘一下. Mac 下编译 Linux 和 Windows 64位可执行程序 CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.go CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go Linux 下编译 Mac 和 Windows 64位可执行程序 CGO_ENABLED=0 GOO
-
Golang如何交叉编译各个平台的二进制文件详解
Golang交叉编译平台的二进制文件 熟悉golang的人都知道,golang交叉编译很简单的,只要设置几个环境变量就可以了 # mac上编译linux和windows二进制 CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build # linux上编译mac和windows二进制 CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go
-
golang交叉编译详细
目录 1.环境变量对照表 2.使用 2.1 Windows 2.2 linux 2.3 Mac OS 3.备注 3.1 CGO_ENABLED解释 1.环境变量对照表 golang交叉编译环境变量对照表 GOOS | GOARCH | OS VERSION ---|---|--- linux | 386 / amd64 / arm | >= Linux 2.6 darwin | 386 / amd64 | OX X (Snow Leopard + Lion) freebsd | 386 / am
-
Golang交叉编译(跨平台编译)的使用
目录 一.何为交叉编译 二.交叉编译前的准备 安装TDM-GCC 三.简述交叉编译 四.实练 1. 默认编译 2.交叉编译一个Arm+Linux 小总结 一.何为交叉编译 简单地说,就是在一个平台上生成另一个平台上的可执行代码.同一个体系结构可以运行不同的操作系统:同样,同一个操作系统也可以在不同的体系结构上运行. 二.交叉编译前的准备 本文只介绍Windows平台下的Golang交叉编译 安装TDM-GCC 下载地址:http://tdm-gcc.tdragon.net/download安装完
-
Golang交叉编译之跨平台编译使用详解
目录 在CMD命令行中编译 设置Linux编译环境 powershell命令行中 一.CGO_ENABLED 二.GOOS 三.GOARCH 四.GOHOSTOS 五.GOHOSTARCH 六.go build 后台运行 1.nohup 2. & 3. windows上 curl 命令测试 在CMD命令行中编译 设置Linux编译环境 SET CGO_ENABLED=0 set GOARCH=amd64 set GOOS=linux //CGO_ENABLED=0 GOOS=linux GOAR
-
Golang三个编译基本命令的使用小结
目录 1.go build(编译) 2.go run(编译并运行) 3.go install(编译并安装) 在运行Go语言程序之前,先要将其编译成二进制的可执行文件 我们通常在编辑器编写完源码后使用go build或go run命令对GO语言程序进行编译 1.go build(编译) 作用:将Go语言程序和相关依赖编译成可执行文件 语法格式:go build [参数] fileName 参数: fileName为所要编译的文件名,可以是一个或多个Go源文件名(多个文件名之间需要用空格作为分隔符)
-
修改并编译golang源码的操作步骤
最近为了做Hyperledger Fabric国密改造,涉及到了golang源码的改动.特将操作过程整理如下,以供参考: golang的源码安装其实比较简单,只需运行源码包中的脚本src/all.bash,等到出现类似以下字样就安装好了: Installed Go for linux/amd64 in xxx(目录地址) Installed commands in xxx(目录地址) 但是在源码安装1.5版本以上的go时会报以下的错误 : ##### Building Go bootstrap
-
golang使用json格式实现增删查改的实现示例
需求和思路 在一般的小项目或者一个小软件,例如客户端之类的小程序中,可能会需要数据的持久化.但是使用一般的数据库(Mysql)之类的不合适.使用sqlite3这种嵌入式的是个较好的方法,但是Go语言中sqlite3的库是C语言的,Cgo不支持跨平台编译.正是由于这种需求,才想到使用json格式将数据直接保存在文件中. 具体的思路是怎么样呢? 在Go语言中如果要将数据转化成json格式的话,有两种格式 struct 和 map. 如果同时需要增删查改功能的话,将map作为中间格式是比较合适的.接下
-
Golang搭建开发环境的图文教程
Golang开发环境搭建 Go 语言开发包 国外:https://golang.org/dl/ 国内(推荐): https://golang.google.cn/dl/ 编辑器 Golang:https://www.jetbrains.com/go/ Visual Studio Code: https://code.visualstudio.com/ 搭建 Go 语言开发环境,需要先下载 Go 语言开发包. 查看操作系统及版本 Windows: Mac: Linux: 终端输入uname -a
-
推荐几款C/C++的编译器、编译环境(非常全面的比较)
C/C++编译器有哪些? 首先是如雷贯耳的这几位仁兄,MSVC.GCC.Cygwin.MingW(Cygwin和MingW的英文发音),另外还有些小众和新秀,像ICC(Intel C/C++ Compiler).BCC(Borland C/C++ Compiler,快销声匿迹了).RVCT(ARM的汇编/C/C++编译器,内置在ARM的IDE--RVDS中).Pgi编译器--其实有一大串,我们只要熟悉常用的最强大的几款就可以了. 主流C/C++编译器|编译环境简介 MSVC MSVC是微软Win
随机推荐
- Javascript面向对象之四 继承
- 使用Spring boot + jQuery上传文件(kotlin)功能实例详解
- require.js+vue开发微信上传图片组件
- 在javaScript中关于submit和button的区别介绍
- MySQL提示:The server quit without updating PID file问题的解决办法
- JS正则表达式大全(整理详细且实用)
- asp.net5中的用户认证与授权(1)
- ASP.NET Session对象保持会话使用说明
- Centos 7下使用RPM包安装MySQL 5.7.9教程
- destoon数据库表说明汇总
- 基于jQuery制作小图标上下滑动特效
- 获取页面高度,窗口高度,滚动条高度等参数值getPageSize,getPageScroll
- jQuery内容筛选选择器实例代码
- Android编程之TextView的字符过滤功能分析
- C#实现将网页保存成图片的网页拍照功能
- PHP对字符串的递增运算分析
- Linux Socket 编程简介和实现
- Golang 日期/时间包的使用详解
- CentOS7.4开机出现welcome to emergency mode的解决方法
- C++关于Makefile的详解含通用模板