交叉编译

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

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

代码

package main

import "fmt"

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

内核

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

架构

目前市面上的CPU架构为X86和arm,amd和intel属于X86架构。

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

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

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

Go支持的平台

$GOOS $GOOS
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平台可执行文件

$ GOOS=windows GOARCH=amd64 go build test.go

Linux

编译Linux平台可执行文件

$ GOOS=linux GOARCH=amd64 go build test.go

Mac

$ GOOS=darwin GOARCH=amd64 go build test.go

原文:

作者:海马  创建时间:2023-11-23 08:54
最后编辑:海马  更新时间:2024-05-10 15:32