为了账号安全,请及时绑定邮箱和手机立即绑定

如何在Mac源码安装Go1.5开发环境

如何在Mac源码安装Go1.5开发环境

Go
牛魔王的故事 2019-03-04 08:04:48
如何在Mac源码安装Go1.5开发环境
查看完整描述

3 回答

?
湖上湖

TA贡献2003条经验 获得超2个赞

  Go1.5开发环境依赖Go1.4版本作为引导,因为Go1.5使用Go本身来编译安装Go,所以必须保证服务器上已经安装Go1.4,这完全是为了解决先有鸡还是先有蛋的问题,当然如果你想避免编译安装1.4也可以直接使用二进制包。

  在这里假设你希望将go1.5安装到$HOME/go1.5目录下,只需要以下几步:

  下载Go1.5的源码放到$HOME/go1.5目录下

  在安装Go1.5之前需要将Go1.4放到$HOME/go1.4下面或者export GOROOT_BOOTSTRAP=/go1.4安装目录/

  到$HOME/go1.5/src/下执行all.bash即可

  我习惯将软件安装至/usr/local/下,以下为我安装Go1.5(/usr/local/go1.5)的步骤:

  wget https://storage.googleapis.com/golang/go1.5.1.src.tar.gz

  tar zxvf go1.5.1.src.tar.gz

  mv ./go /usr/local/go1.5

  wget https://storage.googleapis.com/golang/go1.4.3.src.tar.gz

  tar zxvf go1.4.3.src.tar.gz

  mv ./go /usr/local/go-bootstrap1.4/

  cd /usr/local/go-bootstrap1.4/src

  ./all.bash //编译安装Go1.4,有可能test不通过,只要编译通过,test可忽略,目的是需要go1.4的二进制包来编译1.5

  cd /usr/local/go1.5/src

  GOROOT_BOOTSTRAP=/usr/local/go-bootstrap1.4 ./all.bash
//可在环境变量中添加GOROOT_BOOTSTRAP,然后再编译Go1.5

  以下为网摘:

  From C to Go

  The gc tool chain is being converted from C to Go.

  An ongoing process, started early 2014.

  Russ Cox says "It'll be done by March [2015]."

  New link tool to replace 6l, 8l, etc.

  New asm tool to replace 6a, 8a, etc.

  Machine-translated gc to replace 6g, 8g, etc.

  Design doc:

  golang.org/s/go13compiler

  Go 1.5 will have no C code in the tool chain or runtime.

  Go语言将使用Go代替C重写运行时环境

  Go 1.4 的合并窗口在 9 月份将关闭,从现在开始到12月份发布 Go 1.4 之前将只接受 bug 修复和小调整。

  Go 1.4 最主要的变化是将使用 Go 语言本身来重写 Go 的运行时,而之前是采用 C 语言开发。这也是为什么 Go 的发行版中包含一个 C
编译器的原因。

  使用 Go 重写的好处是:

  当前如果在 Goroutine 的调用堆栈中发现 C 代码,runtime 将在需要增长堆栈时回滚到老的堆栈方法。如果使用 Go 来重写
runtime,那么堆栈拷贝的方法就会更加高效

  目前转换工作只计划转 Go 编译器 (5g, 6g, 8g), 而不是 C 编译器,降低运行时中的 C 代码行数,甚至可能完全清除

  注意

  这是 golang.org 分发版,也就是 gc ,而不是 gccgo

  这是不同的 C 编译器,gc 工具链将使用你系统的 C 编译器来编译,gc 运行时则使用它的 C 编译器来编译

  8月20日后增加的转换行可能跟 this request 有关.

  Go语言将使用Go代替C重写运行时环境

 



查看完整回答
反对 回复 2019-03-15
?
桃花长相依

TA贡献1860条经验 获得超8个赞

1.最简单的方法: public static String reverse1(String str) { return new StringBuffer(str).reverse().toString(); } 2.最常用的方法: public static String reverse3(String s) { char[] array = s.toCharArray(); String reverse = ""; /...

查看完整回答
反对 回复 2019-03-15
?
胡说叔叔

TA贡献1804条经验 获得超8个赞

你要在mac里安装go的编译环境
然后 把要编译的文件复制过去
话说go好像支持跨平台编译

安装go语言 之前貌似要先安装gcc 还要设置环境变量

查看完整回答
反对 回复 2019-03-15
  • 3 回答
  • 0 关注
  • 935 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信