Skip to content

Commit 6daa519

Browse files
committed
Merge branch 'master' of github.com:hyper0x/go_command_tutorial
2 parents ee99c46 + 67ad634 commit 6daa519

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

0.0.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
Go语言的1.5版本在标准命令方面有了重大变更。这倒不是说它们的用法有多大的变化,而是说它们的底层支持已经大变样了。让我们先来对比一下`$GOROOT/pkg/tool/<平台相关目录>`中的内容。以下简称此目录为Go工具目录。
44

5-
**插播:**平台相关目录即以<GOOS>_<GOARCH>命名的目录,用于存放因特定平台的不同而不同的代码包归档文件或可执行文件。其中,<GOOS>代表特定平台的操作系统代号,而<GOARCH>则代表特定平台的计算架构代号。使用`go env`命令便可查看它们在你的计算机中的实际值。
5+
**插播:** 平台相关目录即以 `<GOOS>_<GOARCH>` 命名的目录,用于存放因特定平台的不同而不同的代码包归档文件或可执行文件。其中,`<GOOS>` 代表特定平台的操作系统代号,而 `<GOARCH>` 则代表特定平台的计算架构代号。使用 `go env` 命令便可查看它们在你的计算机中的实际值。
66

77
1.4版本的Go工具目录的内容如下:
88

@@ -19,7 +19,7 @@ addr2line asm compile dist fix nm pack tour
1919
api cgo cover doc link objdump pprof trace yacc
2020
```
2121

22-
可以看到,1.5版本的目录内容精简了不少。这是因为Go 1.5的编译器、链接器都已经完全用Go语言重写了。而在这之前,它们都是用C语言写的,因此不得不为每类平台编写不同的程序并生成不同的文件。例如,8g、6g和5g分别是gc编译器在x86(32bit)、x86-64(64bit)和ARM计算架构的计算机上的实现程序。相比之下,用Go语言实现的好处就是,编译器和链接器都将是跨平台的了。简要来说,Go 1.5版本的目录中的文件compile即是统一后的编译器,而文件link则是统一后的链接器
22+
可以看到,1.5版本的目录内容精简了不少。这是因为Go 1.5的编译器、链接器都已经完全用Go语言重写了。而在这之前,它们都是用C语言写的,因此不得不为每类平台编写不同的程序并生成不同的文件。例如,8g、6g和5g分别是gc编译器在x86(32bit)、x86-64(64bit)和ARM计算架构的计算机上的实现程序。相比之下,用Go语言实现的好处就是,编译器和链接器都将是跨平台的了。简要来说,Go 1.5版本的目录中的文件 compile 即是统一后的编译器,而文件 link 则是统一后的链接器
2323

2424
本教程并不会讲解Go语言的编译器、链接器以及其它工具是怎样被编写出来的,并只会关注于怎样用好包含它们在内的Go语言自带的命令和工具。
2525

0 commit comments

Comments
 (0)