前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Go语言交叉编译,跨平台执行

Go语言交叉编译,跨平台执行

原创
作者头像
助安社区
发布2023-03-05 16:41:19
1.5K0
发布2023-03-05 16:41:19
举报
文章被收录于专栏:黑客编程

原文转载自,助安社区(https://secself.com/

交叉编译

程序交叉编译后就可以在各操作系统执行,非Java或Python依赖虚拟机,Go编译后不依赖虚拟机。

交叉编译大家要理解三个概念内核架构

代码

代码语言:go
复制
package main

import "fmt"

func main() {
	fmt.Println("https://secself.com")
}

内核:

内核是操作系统的核心,windows不必多说,Linux家族主流内核freebsd、netbsd、solaris等。Mac内核darwin,Darwin 是一种Unix-like(类Unix)操作系统。

架构:

目前市面上的CPU架构为X86armamdintel属于X86架构。

X86架构性能好,耗电多、电压高,主要用于PC机、服务器。

ARM架构耗电少、电压低,单核性能低于X86,主要用于移动设备。

位:

X86一般是指32位的系统,X64就是64位的系统。X64本质上也是X86的一个版本,确切来说,应该叫x86_64,可以简单理解成X86的下一代版本。

Go支持的平台

$GOOS

$GOARCH

darwin

386

darwin

amd64

darwin

arm

darwin

arm64

dragonfly

amd64

freebsd

386

freebsd

amd64

freebsd

arm

linux

386

linux

amd64

linux

arm

linux

arm64

linux

ppc64

linux

ppc64le

netbsd

386

netbsd

amd64

netbsd

arm

openbsd

386

openbsd

amd64

openbsd

arm

plan9

386

plan9

amd64

solaris

amd64

windows

386

windows

amd64

windows

arm

windows

arm64

Windows

编译windows平台可执行文件

代码语言:shell
复制
$ GOOS=windows GOARCH=amd64 go build test.go

Linux

编译Linux平台可执行文件

代码语言:shell
复制
$ GOOS=linux GOARCH=amd64 go build test.go

Mac

代码语言:shell
复制
$ GOOS=darwin GOARCH=amd64 go build test.go

参考

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 交叉编译
  • Go支持的平台
    • Windows
      • Linux
        • Mac
        • 参考
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档