一、何为交叉编译

简单地说,就是在一个平台上生成另一个平台上的可执行代码。同一个体系结构可以运行不同的操作系统;同样,同一个操作系统也可以在不同的体系结构上运行。

二、交叉编译前的准备

本文只介绍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=xxx
SET GOARCH=xxx go env

转载自 https://blog.csdn.net/hx7013/article/details/91489642

[转载] Golang交叉编译(跨平台编译)简述的更多相关文章

  1. Golang 交叉编译跨平台的可执行程序 (Mac、Linux、Windows )

    起因: 在项目中,我们每一次提交都需要添加commit 信息,而且我们的commit 信息,比较繁琐.我决定用golang语言编写一个小工具. 我决定使用语言:golang,使用工具:gox包. go ...

  2. win下 golang 跨平台编译

    mac 下编译其他平台的执行文件方式请参看这篇文章,http://www.cnblogs.com/ghj1976/archive/2013/04/19/3030703.html  本篇文章是win下的 ...

  3. 【GoLang】golang 交叉编译 实现&工具

    apt-get install gcc-mingw-w64 env CGO_ENABLED= GOOS=windows GOARCH=amd64 CC=x86_64-w64-mingw32-gcc g ...

  4. Golang的标准命令简述

    Golang的标准命令简述 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Go本身包含了大量用于处理Go程序的命令和工具.go命令就是其中最常见的一个,它有许多子命令,接下来就跟随 ...

  5. C++字符串常量跨平台编译问题

    C++字符串常量跨平台编译问题(与字符串编码相关),有需要的朋友可以参考下. 1. 问题 在C++代码中,给一个string类型的变量赋值一个中文字符串常量,例如: string s = " ...

  6. 在Windows/Ubuntu下安装OpenGL环境(GLUT/freeglut)与跨平台编译(mingw/g++)

    GLUT/freeglut 是什么? OpenGL 和它们有什么关系? OpenGL只是一个标准,它的实现一般自带在操作系统里,只要确保显卡驱动足够新就可以使用.如果需要在程序里直接使用OpenGL, ...

  7. Golang版protobuf编译

    官方网址: https://developers.google.com/protocol-buffers/ (需要FQ) 代码仓库: https://github.com/google/protobu ...

  8. DELPHI跨平台编译开关

    DELPHI跨平台编译开关 DELPHI 现在是跨平台的开发工具,已经不仅仅针对WINDOWS OS. 跨平台的时候,一些WINDOWS特有的API或语法是不能用的,必须使用跨平台的新语法,要用编译开 ...

  9. 基于 maven 实现跨平台编译 protobuf 文件

    基于 maven 实现跨平台编译 protobuf 文件 mavne protobuf .proto  跨平台  需求 在团队协作中使用 protobuf 时, 有以下几点需求: protoc 跨平台 ...

随机推荐

  1. CSAPP-Lab05 Cache Lab 深入解析

    本文首发于我的知乎专栏:https://zhuanlan.zhihu.com/p/484657229 实验概览 Cache Lab 分为两部分,编写一个高速缓存模拟器以及要求优化矩阵转置的核心函数,以 ...

  2. 5分钟了解Redis的内部实现跳跃表(skiplist)

    跳跃表简介 跳跃表(skiplist)是一个有序的数据结构,它通过在每个节点维护不同层次指向后续节点的指针,以达到快速访问指定节点的目的.跳跃表在查找指定节点时,平均时间复杂度为,最坏时间复杂度为O( ...

  3. Oracle视图(view)传参数教程

    废话不多说,直接上例子! 创建包: create or replace package p_view_param is function set_param(num number) return nu ...

  4. Discuz 7.x、6.x 全局变量防御绕过导致代码执行

    0x01 分析 由于php5.3.x版本里php.ini的设置里request_order默认值为GP,导致REQUEST中不再包含_REQUEST中不再包含R​EQUEST中不再包含_COOKIE, ...

  5. 托管调试助手 "DisconnectedContext":“针对此 RuntimeCallableWrapper 向 COM 上下文 0xd47808 的转换失败,错误如下: 系统调用失败。

    参考资料 托管调试助手 "DisconnectedContext":"针对此 RuntimeCallableWrapper 向 COM 上下文 0xd47808 的转换失 ...

  6. Java 中的 final 关键字有哪些用法?

    修饰类:表示该类不能被继承: 修饰方法:表示方法不能被重写: 修饰变量:表示变量只能一次赋值以后值不能被修改(常量).

  7. 面试问题之C++语言:说一下static关键字的作用

    1.全局静态变量 在全局变量加上关键字static,全局变量就定义成一个全局静态变量,存放于静态存储区,在整个程序运行期间一直存在:未经初始化的全局静态变量会被自动初始化为0:全局静态变量在声明他的文 ...

  8. 学习heartbeat-05 实现web服务高可用

    一.环境介绍 说明:所有案例在虚拟机(VMware)上完成 操作系统:centos 6.5 64bit 高可用软件:heartbeat 3.0.4 Web应用服务器:apache httpd 2.2. ...

  9. (stm32f103学习总结)—RTC独立定时器—实时时钟实验

    一.STM32F1 RTC介绍 1.1 RTC简介 STM32 的实时时钟( RTC)是一个独立的定时器. STM32 的 RTC 模 块拥有一组连续计数的计数器,在相应软件配置下,可提供时钟日历的 ...

  10. 13_奈奎斯特稳定性判据_Nyquist Stability Criterion_Part 1

    A曲线内有4个极点两个零点,则B曲线绕(0,0)逆时针两圈 A曲线是nyqyict contour中的曲线,P是A曲线内的()极点个数,Z是()极点个数,N是曲线B逆时针围绕(-1,0)的圈数 没过( ...