go 语言如何跨平台编译
2024-10-19 06:15:59
以evio源码的分析来说明:
我们看到在有些文件的头部有这样一个标识:文件链接:https://github.com/tidwall/evio/blob/master/evio_unix.go
// +build darwin netbsd freebsd openbsd dragonfly linux 它表示的是这个文件只在darwin netbsd openbsd dragonfly linux 平台下编译成功。
而有些文件是这样的标识:文件链接:https://github.com/tidwall/evio/blob/master/evio_other.go
// +build !darwin,!netbsd,!freebsd,!openbsd,!dragonfly,!linux 前面加!表示不支持这个平台的编译
还有一部分文件是没有+build这行注释,由此可知go语言编写的文件,如果想区分不同平台的编译只需在文件的首部加上// +build标识,如果不添加那么默认是支持所有平台的编译。
那么支持的平台到底有哪些呢?参考链接:https://github.com/golang/go/blob/master/src/go/build/syslist.go
// Copyright 2011 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file. package build const goosList = "aix android darwin dragonfly freebsd hurd js linux nacl netbsd openbsd plan9 solaris windows zos "
const goarchList = "386 amd64 amd64p32 arm armbe arm64 arm64be ppc64 ppc64le mips mipsle mips64 mips64le mips64p32 mips64p32le ppc riscv riscv64 s390 s390x sparc sparc64 wasm "
可以看到支持的平台和架构还是很多的。
当然还有一种方式是指定当前go的环境变量GOOS and GOARCH
最新文章
- AngularJS 指令
- C# XML序列化操作菜单
- Centos6.5 安装Vim7.4
- [UOJ Round#4 A] [#51] 元旦三侠的游戏 【容斥 + 递推】
- uilable 换行标记
- 使用Javascript/jQuery将javascript对象转换为json格式数据 - 海涛的CSDN博客 - 博客频道 - CSDN.NET
- 【AGC030F】Permutation and Minimum DP
- Django REST Framework API Guide 08
- Petrozavodsk Winter Camp, Day 8, 2014, Rectangle Count
- mybatis There is no getter for property named '*' in 'class java.lang.String
- js中if语句的几种优化代码写法
- KVM_webvirtmgr
- leecode第十一题(盛最多水的容器)
- linux 添加php gd扩展 (linux添加PHP扩展)
- word2013总是出现未响应卡一下如何解决?
- [转]Vim插件管理工具Vundle
- RDLC - 后台代码直接导出Excel/PDF/Word格式
- 延迟任务和循环任务ScheduledExecutorService
- bzoj 3192 删除物品
- HBase基本知识介绍及典型案例分析
热门文章
- 基于框架的RPC通信技术原理解析
- Html lable 标签
- [c/c++] programming之路(24)、字符串(五)——字符串插入,字符串转整数,删除字符,密码验证,注意事项
- MATLAB raw格式转为bmp格式
- flask --- 03 .特殊装饰器, CBV , redis ,三方组件
- Python3 tkinter基础 OptionMenu 点击按钮,出现单选的下拉列表
- linux下如何源码编译安装vim
- CodeForces 518E Arthur and Questions(贪心 + 思维)题解
- js弹出对话框的三种方式(转)
- IdentityServer4授权类型(GrantType)对应的返回类型(ResponseType)