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/내부/OBJ 허용되지 않음
GOROOT=/data/app/go/src/gosrc/go && export PATH=$GOROOT/bin:$PATH
4.1 기본 Goroot
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 모드를 패키지 관리 도구로 사용하십시오
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" )
}