1. Установите Godev в качестве каталога исходного кода
$ GODEV= go 的绝对路径eg: /data/app/go/src/gosrc/go
2. Введите каталог исходного кода
$ cd $GODEV/src
3. Установите установку в текущий каталог установки
$ GOROOT_BOOTSTRAP=./ GO_GCFLAGS="-N -l" ./all.bash
$ GOROOT_BOOTSTRAP=./ GO_GCFLAGS="-N -l" ./make.bash
$ GOROOT_BOOTSTRAP=$(go env GOROOT) ./make.bash
$ GOOS=darwin GOARCH=amd64 ./bootstrap.bash
4. Решите использование внутреннего пакета CMD/Internal/OBJ не разрешен
GOROOT=/data/app/go/src/gosrc/go && export PATH=$GOROOT/bin:$PATH
4.1 По умолчанию горут
GOROOT=/usr/local/go && export PATH=$GOROOT/bin:$PATH
go test -v -run=Dynlink
5. Go Build Go
$GODEV/bin/go run main.go build -debug-actiongraph="json"
go build -v -x -work -o main main.go
-v напечатает скомпилированное имя пакета
-x Команды печати, выполненные во время компиляции
-Работа печатает временный путь файла, сгенерированный во время компиляции, и не будет удален после завершения компиляции
$GODEV/bin/go run /data/app/go/src/gosrc/go/src/cmd/go/main.go run /data/app/go/src/gosrc/demo/runtime/gc/gctodo/main.go
$GODEV/bin/go run /data/app/go/src/gosrc/go/src/cmd/compile/main.go -o main.o /data/app/go/src/gosrc/demo/type/type_definitions/method_set/main.go
$GODEV/bin/go run /data/app/go/src/gosrc/go/src/cmd/compile/main.go -o main.o /data/app/go/src/gosrc/demo/base_learn/slice/perform/main.go
GOROOT=/data/app/go/src/gosrc/go && export PATH=$GOROOT/bin:$PATH go run /data/app/go/src/gosrc/go/src/cmd/link/main.go -o main main.o
Building Go cmd/dist using /usr/local/go.
Building Go toolchain1 using /usr/local/go.
Building Go bootstrap cmd/go (go_bootstrap) using Go toolchain1.
Building Go toolchain2 using go_bootstrap and Go toolchain1.
Building Go toolchain3 using go_bootstrap and Go toolchain2.
Building packages and commands for darwin/amd64.
---
# #### API check
Go version is " go " , ignoring -next /data/app/go/src/go/api/next.txt
ALL TESTS PASSED
---
Installed Go for darwin/amd64 in /data/app/go/src/go
Installed commands in /data/app/go/src/go/bin
*** You need to add /data/app/go/src/go/bin to your PATH.
4. Запустите все тесты, используя недавно скомпилированный набор инструментов
4.1 Используйте MOD в качестве инструмента управления пакетами
export GO111MODULE=on
4.2 Текущее имя каталога используется в качестве мода текущего имени пакета по умолчанию. Если требуется переименование, удалите существующий мод и восстановите его.
$GODEV/bin/go mod init runtime
4.3. Введите стандартный пакет, чтобы запустить один тест
$GODEV/bin/go test -v -run=TestYieldLocked
=== RUN TestYieldLockedProgress
--- PASS: TestYieldLockedProgress (0.01s)
=== RUN TestYieldLocked
--- PASS: TestYieldLocked (0.01s)
PASS
ok runtime 0.031s
$GODEV/bin/go test -run=NONE -v -bench=ChanProdCons0
goos: darwin
goarch: amd64
pkg: runtime
BenchmarkChanProdCons0-4 3000000 471 ns/op
PASS
ok runtime 1.919s
`$GODEV/bin/go test -v -bench=. -run=Benchmark`
```
goos: darwin
goarch: amd64
pkg: runtime
BenchmarkMakeChan/Byte-4 30000000 47.3 ns/op
BenchmarkMakeChan/Int-4 20000000 54.2 ns/op
BenchmarkMakeChan/Ptr-4 10000000 130 ns/op
BenchmarkMakeChan/Struct/0-4 30000000 41.3 ns/op
```
package main
import (
"fmt"
)
func main () {
fmt . Println ( "read go" )
}