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

2020-11-06 12:09:00 +08:00
 alan0liang

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

2194 次点击
所在节点    Go 编程语言
11 条回复
ExplorerLog
2020-11-06 12:19:34 +08:00
自己去源代码编译?
https://go.googlesource.com/go/+refs
user8341
2020-11-06 12:22:53 +08:00
连 Go 都已经变化那么大了吗?现在写的程序如何保证 10 年后可以运行呢?
alan0liang
2020-11-06 12:28:38 +08:00
@ExplorerLog 我试着编译了,各种编译报错+segmentation fault
westoy
2020-11-06 12:30:25 +08:00
早期 go 生成的 binary 对 libc 强依赖吧 ,你还得用当时的系统......不过几个系统版本 10 年的源包地址都不维护了吧..........
TomatoAres
2020-11-06 12:45:19 +08:00
如果代码量不大,可以试试改改
zzn
2020-11-06 12:55:49 +08:00
@user8341 这是 go 1 前的语法,没人保证兼容性而已。
Aoang
2020-11-06 13:02:21 +08:00
@alan0liang 你用什么编译的,没有实现自举之前的 Golang 是需要用 C 去编译的
reus
2020-11-06 13:33:09 +08:00
go 自带 fix 命令,可以将代码转成 go1 兼容的,可能有用
alan0liang
2020-11-06 14:03:53 +08:00
@Aoang gcc-4.8
@reus 谢谢!
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
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
```

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/722348

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX