Skip to content

Latest commit

 

History

History
79 lines (76 loc) · 3.1 KB

File metadata and controls

79 lines (76 loc) · 3.1 KB

进一步了解 Go 构建

如果要了解执行go build命令之后的更多信息,则应在其中添加-x标志:

$ go build -x defer.go
WORK=/var/folders/sk/ltk8cnw50lzdtr2hxcj5sv2m0000gn/T/go-build254573394
mkdir -p $WORK/b001/
cat >$WORK/b001/importcfg.link << 'EOF' # internal
packagefile command-line-arguments=/Users/mtsouk/Library/Caches/go-
build/9d/9d6ca8651e083f3662adf82bb90a00837fc76f55839e65c7107bb55fcab92458-d
packagefile fmt=/usr/local/Cellar/go/1.11.4/libexec/pkg/darwin_amd64/fmt.a
packagefile
runtime=/usr/local/Cellar/go/1.11.4/libexec/pkg/darwin_amd64/runtime.a
packagefile
errors=/usr/local/Cellar/go/1.11.4/libexec/pkg/darwin_amd64/errors.a
packagefile io=/usr/local/Cellar/go/1.11.4/libexec/pkg/darwin_amd64/io.a
packagefile
math=/usr/local/Cellar/go/1.11.4/libexec/pkg/darwin_amd64/math.a
packagefile os=/usr/local/Cellar/go/1.11.4/libexec/pkg/darwin_amd64/os.a
packagefile
reflect=/usr/local/Cellar/go/1.11.4/libexec/pkg/darwin_amd64/reflect.a
packagefile
strconv=/usr/local/Cellar/go/1.11.4/libexec/pkg/darwin_amd64/strconv.a
packagefile
sync=/usr/local/Cellar/go/1.11.4/libexec/pkg/darwin_amd64/sync.a
packagefile
unicode/utf8=/usr/local/Cellar/go/1.11.4/libexec/pkg/darwin_amd64/unicode/u
tf8.a
packagefile
internal/bytealg=/usr/local/Cellar/go/1.11.4/libexec/pkg/darwin_amd64/inter
nal/bytealg.a
packagefile
internal/cpu=/usr/local/Cellar/go/1.11.4/libexec/pkg/darwin_amd64/internal/
cpu.a
packagefile
runtime/internal/atomic=/usr/local/Cellar/go/1.11.4/libexec/pkg/darwin_amd6
4/runtime/internal/atomic.a
packagefile
runtime/internal/sys=/usr/local/Cellar/go/1.11.4/libexec/pkg/darwin_amd64/r
untime/internal/sys.a
packagefile
sync/atomic=/usr/local/Cellar/go/1.11.4/libexec/pkg/darwin_amd64/sync/atomi
c.a
packagefile
internal/poll=/usr/local/Cellar/go/1.11.4/libexec/pkg/darwin_amd64/internal
/poll.a
packagefile
internal/syscall/unix=/usr/local/Cellar/go/1.11.4/libexec/pkg/darwin_amd64/
internal/syscall/unix.a
packagefile
internal/testlog=/usr/local/Cellar/go/1.11.4/libexec/pkg/darwin_amd64/inter
nal/testlog.a
packagefile
syscall=/usr/local/Cellar/go/1.11.4/libexec/pkg/darwin_amd64/syscall.a
packagefile
time=/usr/local/Cellar/go/1.11.4/libexec/pkg/darwin_amd64/time.a
packagefile
unicode=/usr/local/Cellar/go/1.11.4/libexec/pkg/darwin_amd64/unicode.a
packagefile
math/bits=/usr/local/Cellar/go/1.11.4/libexec/pkg/darwin_amd64/math/bits.a
packagefile
internal/race=/usr/local/Cellar/go/1.11.4/libexec/pkg/darwin_amd64/internal
/race.a
EOF
mkdir -p $WORK/b001/exe/
cd .
/usr/local/Cellar/go/1.11.4/libexec/pkg/tool/darwin_amd64/link -o
$WORK/b001/exe/a.out -importcfg $WORK/b001/importcfg.link -buildmode=exe -
buildid=nkFdi6n3HGYZXDdCOju1/VfKOjehfe3PSzik3cZom/OthUDj9rThOtZPf-2627/nkFd
i6n3HGYZXDdCOju1 -extld=clang /Users/mtsouk/Library/Caches/go-
build/9d/9d6ca8651e083f3662adf82bb90a00837fc76f55839e65c7107bb55fcab92458-d
/usr/local/Cellar/go/1.11.4/libexec/pkg/tool/darwin_amd64/buildid -w
$WORK/b001/exe/a.out # internal
mv $WORK/b001/exe/a.out defer
rm -r $WORK/b001/

虽然了解编译的详细过程对你说是好事,但是大多数情况下你都不需要了解这些详细的编译过程信息。