其实我也是个go程序员啊,
发这个贴也道歉把,怕谁没事找事,还是为了自己看不乐意老收藏别人也不能分类麻烦 ,
讨论技术之外勿扰 , 并不是什么商用所以别烦我. whaosoft aiot http://143ai.com
Go语言跨平台跨架构编译成不需要依赖的静态二进制可执行文件,使得Go语言在微服务部署运维上具有很大的优势。
Go编译时通过GOOS环境变量判断目标平台,通过GOARCH判断目标架构。
平台列表
架构列表
编译
在进行跨平台跨架构编译时,只需要制定GOOS和GOARCH环境变量就可以编译指定的平体架构的目标成果物。
GOOS=${goos} GOARCH=${goarch} go build .
注意:CGO跨平台跨架构需要配置交叉编译环境。
有时针对不同的平台、架构,在代码中需要进行额外的处理,因此需要在代码中区分平台和架构。
Go语言通过关键字+build在编译时对平台和就够进行区分。
例如:在linux平台,386架构或者darwin平台,非cgo时编译
// +build linux,386 darwin,!cgo
还可以采用并列的写法。例如:
// +build linux darwin // +build amd64
结束语
Go语言跨平台跨架构不像java,python等需要依赖运行时环境的语言,Go编译出来的可执行文件可以直接运行。
龙芯的架构是自研的LoongISA指令系统,兼容MIPS架构,所以理论上使用Go编译出来的可执行文件,也可以在龙芯上运行。