回答

收藏

所有可能的 GOOS 值?

技术问答 技术问答 264 人阅读 | 0 人回复 | 2023-09-12

假如我猜对了,GOOS编译源代码时确定。5 @* Q+ W" q$ Q2 x- y' L
为了更好地支持多个操作系统,我是对的GOOS也许感兴趣。
  n: x3 |9 a# M2 `  L% a当然,由于 Go 是开源的。所以我真正想要的是一个通用列表。
& e3 k$ Q" G) O  v/ F7 e1 A已知值是:/ v" F. a0 n& y" `
windows
( D3 O3 @, D; _9 tlinux
% B! Q1 s7 {4 n1 |; `0 p, ]6 a# {darwin或freebsd或unix? 我知道至少一个必须存在。
                                                                - A8 d( [1 @# w* y, o& R
    解决方案:                                                               
$ ?' V8 U( N; u6 Z                                                                请注意,这些值在src/go/build/syslist.go.+ Y% F3 S! x5 f" n; \7 f  ?7 Y, \
随着围棋1.5(Q3 2015年),GOARCH将成为很多更加完整。& B# u8 g- B3 y* A8 C
见提交1eebb91由Minux马(minux)
# B+ i/ e1 Z7 r4 m, k`go/build:GOARCH为所有常见架构保留值每当我们介绍一个新的GOARCH、旧的 Go 版本不会识别它们,这会给我们的用户和我们带来麻烦(我们需要添加不必要的建筑标签)。& P7 V4 f7 j# e+ h! M& v! ]; ?; Y  }) g
到目前为止arm64 ppc64 ppc64le,Go 1.5 引进了三种新的 GOARCHe:,我们可以花时间为 Go引入  未来可能支持的所有常见架构GOARCHe,避免出现问题。7 t: W# V1 c/ Q; l& l- g
    const goosList = "android darwin dragonfly freebsd linux nacl \   netbsd openbsd plan9 solaris windows "const goarchList = "386 amd64 amd64p32 arm arm64 ppc64 ppc64le \   mips mipsle mips64 mips64le mips64p32 mips64p32le \ # (new)   ppc s390 s390x sparc sparc64 " # (new)+ u) `' i- O: `
该列表仍在Change 9644 审核如下:, [$ h$ D. q% h2 e  E
我不会打扰安腾。基本上是死架构。8 J) D! ~; Z! D1 s
另外,很难为它编写编译器。除非出于爱,否则我真的看不到它的发生,没有人喜欢 Itanium。% l' N4 O( a  j: U  I- ~
现在的官方文档(GO 1.5  Q3 2015)反映了完整的列表。
1 I2 i/ G3 d1 D2018 年更新:如:Giorgos Oikonomou答案中所述,Go 1.7(2016年第一季度)引入% u2 b+ G3 y) Z- {0 k, C! f$ m) h
go tool dist list命令。
- G6 d2 U+ `4 Y请参阅提交 c3ecded:它修复了2015年第三季度开放的问题 12270:
4 H2 a( |2 z2 x: z为了更容易地编写交叉编译工具,最好通过编程获得 GOOS 和 GOARCH 的可能组合。
& B8 i" e( Y" s' F& I这是在CL 在19837 中实现]
; ?0 {& N; R- T# [* H% Kcmd/dist: 引入list列出所有支持平台的子命令% B! c' e+ I# t1 |% b. W
可纯文本或 json 格式列出:
5 B- q+ d8 q5 a; i$ [
    > go tool dist list -json                                        "GOOS": "android",               "GOARCH": "386",               "CgoSupported": true         ...]
    ( U4 s3 t5 w; I. t. Y) j
正如马克·贝所说:2 _3 v$ t3 S; B8 Y
奖励:列输出格式正确显示:
- X6 f7 V* a! cgolanggo tool dist list | column -c 75 | column -t
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则