V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
alan0liang
V2EX  ›  Go 编程语言

哪里可以找到早期 Go 的 Binary?

  •  
  •   alan0liang ·
    Alan-Liang · 2020-11-06 12:09:00 +08:00 via Android · 2336 次点击
    这是一个创建于 1477 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我想跑一个早期 Go 写的程序(时间在 2010 年 3 月,和 go 1+ 不兼容),但是找不到那个时候预编译的 binary,自己编译的话要不根本通不过编译,要不编译出来跑一个 hello world 都 segmentation fault,有什么途径可以获得这种 binary 吗?

    11 条回复    2020-11-06 18:43:28 +08:00
    ExplorerLog
        1
    ExplorerLog  
       2020-11-06 12:19:34 +08:00
    自己去源代码编译?
    https://go.googlesource.com/go/+refs
    user8341
        2
    user8341  
       2020-11-06 12:22:53 +08:00
    连 Go 都已经变化那么大了吗?现在写的程序如何保证 10 年后可以运行呢?
    alan0liang
        3
    alan0liang  
    OP
       2020-11-06 12:28:38 +08:00 via Android
    @ExplorerLog 我试着编译了,各种编译报错+segmentation fault
    westoy
        4
    westoy  
       2020-11-06 12:30:25 +08:00   ❤️ 1
    早期 go 生成的 binary 对 libc 强依赖吧 ,你还得用当时的系统......不过几个系统版本 10 年的源包地址都不维护了吧..........
    TomatoAres
        5
    TomatoAres  
       2020-11-06 12:45:19 +08:00
    如果代码量不大,可以试试改改
    zzn
        6
    zzn  
       2020-11-06 12:55:49 +08:00   ❤️ 1
    @user8341 这是 go 1 前的语法,没人保证兼容性而已。
    Aoang
        7
    Aoang  
       2020-11-06 13:02:21 +08:00 via Android
    @alan0liang 你用什么编译的,没有实现自举之前的 Golang 是需要用 C 去编译的
    reus
        8
    reus  
       2020-11-06 13:33:09 +08:00   ❤️ 1
    go 自带 fix 命令,可以将代码转成 go1 兼容的,可能有用
    alan0liang
        9
    alan0liang  
    OP
       2020-11-06 14:03:53 +08:00 via Android
    @Aoang gcc-4.8
    @reus 谢谢!
    reus
        10
    reus  
       2020-11-06 14:15:51 +08:00
    @user8341 2012 年 go1.0 发布之后的 go 程序,到现在完全兼容。楼主的是 1.0 发布之前的,是不兼容的。但是 go 自带了一个 fix 命令,是可以将旧版本的 go 代码自动转换成 go1.0 兼容的代码的。


    @alan0liang 只有 go1.0 的 fix 才支持转换,到 go1.1 就不支持了,所以要下载 go1.0 的 bin 。刚刚看到 1.1 的 release notes 里说的: https://golang.org/doc/go1.1#gofix
    kenzi
        11
    kenzi  
       2020-11-06 18:43:28 +08:00
    多装一份去 bin 就好。。

    ```
    go get golang.org/dl/go1.14.4
    go1.14.4 download
    go1.14.4 run main.go
    ```
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5299 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 06:54 · PVG 14:54 · LAX 22:54 · JFK 01:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.