1 Go工程化-交叉编译概述-德赢Vwin官网 网
0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Go工程化-交叉编译概述

冬至子 来源:洋芋土豆 作者:真没什么深度 2023-05-22 17:15 次阅读

概述

交叉编译,也称跨平台编译,就是在一个平台上编译源代码,生成结果为另一个平台上的可执行代码。这里的平台包含两个概念:体系架构 (如 AMD, ARM) 和 操作系统 (如 Linux, Windows)。同一个体系架构可以运行不同的操作系统,反过来,同一个操作系统也可以运行在不同的体系架构上。

Go 实现跨平台编译的思想其实很简单:通过保存可以生成最终机器码的多份翻译代码, 在编译时根据 GOARCH=体系架构 和GOOS=操作系统参数进行初始化设置, 最终调用对应平台编写的特定方法来生成机器码,从而实现跨平台编译。

例子

下面的例子统一以 amd64 作为体系架构参数,读者请根据自己的环境更换对应参数。

Mac

编译为 Linux 代码

CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.go

编译为 Windows 代码

CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go

Linux

编译为 Mac 代码

CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build main.go

编译为 Windows 代码

CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go

Windows

编译为 Mac 代码

SET CGO_ENABLED=0
SET GOOS=darwin
SET GOARCH=amd64
go build main.go

编译为 Linux 代码

SET CGO_ENABLED=0
SET GOOS=linux
SET GOARCH=amd64
go build main.go
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表德赢Vwin官网 网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux系统
    +关注

    关注

    4

    文章

    593

    浏览量

    27392
  • 机器码
    +关注

    关注

    0

    文章

    12

    浏览量

    8310
  • 交叉编译器
    +关注

    关注

    0

    文章

    10

    浏览量

    7538
收藏 人收藏

    评论

    相关推荐

    形式方法的工程化

    验证工作作为典型的形式方法的工程化案例,应用了形式方法的需求分析、建模与验证,由此验证了形式方法的可行性与有效性。
    的头像 发表于 03-24 11:01 1458次阅读
    形式<b class='flag-5'>化</b>方法的<b class='flag-5'>工程化</b>

    嵌入式系统工程化设计要注意哪些方面

    嵌入式系统工程化设计7——计算机可靠性设计原创·林超100前一讲高可靠性是嵌入式系统的关键设计因素,但是讲到的内容是普适性的,对任何带电子设备的设备都需要。但是针对信息处理和控制的嵌入式计算机
    发表于 11-08 06:51

    嵌入式系统工程化设计的相关资料分享

    了行业的飞速发展,可以说这个行业在风口上。但是,也发现我们的行业的不足,基础严重依赖国外,企业设计能力参差不齐,从业人员培训费时费力,导致产品可靠性低下,项目遭受重大损失。解决这一问题,需要提升我国嵌入式计算机工程化设计能力。什么是工程化首先什么是
    发表于 11-09 06:37

    监控系统中控制软件的工程化设计与实现

    主要探讨微机监控系统中控制软件的工程化设计方法,介绍了模块程序设计和结构程序设计的基本原理,具体分析了在电锅炉微机控制系统中,采用模块程序设计和结构
    发表于 03-18 10:33 21次下载

    交叉平台开源编译系统_cmake入门

    交叉平台开源编译系统_cmake入门
    发表于 01-22 13:59 9次下载

    CSS工程化实践成果分析

    作为Web开发的重要组成部分,CSS技术演进也在推动着前端工程化不断进步。本文将从CSS模块、namespace约束、CSS in JS方案三个方面逐步深入解读CSS在工程化领域取得的成果
    发表于 09-27 15:10 0次下载

    嵌入式交叉编译环境的搭建解析

    5.1.1 嵌入式交叉编译环境的搭建 交叉编译的概念在第4章中已经详细讲述过,搭建交叉编译环境是
    发表于 10-18 16:44 1次下载

    arm-linux的交叉编译环境解析

    的主要原因在于,多数嵌入式目标系统不能提供足够的资源供编译过程使用,因而只好将编译工程转移到高性能的主机中进行。 linux下的交叉编译环境
    发表于 10-31 11:26 7次下载

    ST微电子STM8的C交叉编译用户指南

    《STM8交叉编译器用户指南》是程序员为STM8微控制器环境编写C程序的参考指南。它概述交叉编译器的工作原理,并解释了如何
    发表于 06-04 08:00 12次下载
    ST微电子STM8的C<b class='flag-5'>交叉</b><b class='flag-5'>编译</b>用户指南

    Prelink的交叉编译和使用详解

    Prelink的交叉编译和使用详解
    的头像 发表于 06-20 12:03 3530次阅读
    Prelink的<b class='flag-5'>交叉</b><b class='flag-5'>编译</b>和使用详解

    基于工程化参数优化的遥测伺服系统

    基于工程化参数优化的遥测伺服系统
    发表于 06-30 15:57 6次下载

    嵌入式系统工程化设计

    了行业的飞速发展,可以说这个行业在风口上。但是,也发现我们的行业的不足,基础严重依赖国外,企业设计能力参差不齐,从业人员培训费时费力,导致产品可靠性低下,项目遭受重大损失。解决这一问题,需要提升我国嵌入式计算机工程化设计能力。什么是工程化首先什么是
    发表于 11-04 10:21 15次下载
    嵌入式系统<b class='flag-5'>工程化</b>设计

    交叉编译器安装教程

    交叉编译器中“交叉”的意思就是在一个架构上编译另外一个架构的代码,相当于两种架构“交叉”起来了。Ubuntu 自带的 gcc
    的头像 发表于 09-29 09:12 3501次阅读

    QT如何配置交叉编译工具?

    交叉编译工具安装 (glibc版本需要和开发板上的版本相兼容)
    的头像 发表于 10-28 09:31 3435次阅读

    Linux交叉编译选项与源码与目标文件分离

    交叉编译选项 编译Linux,通常只需要运行 make menuconfig 配置要编译的模块,然后运行 make 。Linux默认是做本地编译
    的头像 发表于 09-27 11:48 832次阅读