第27节 go tool
❤️💕💕Go语言高级篇章,在此之前建议您先了解基础和进阶篇。Myblog:http://nsddd.top
Go语言基础篇
Go语言100篇进阶
[TOC]
Go Tool
调出CLI:
root@cubmaster01:/workspces/tiktok# go tool
addr2line
asm
buildid
cgo
compile
cover
dist
doc
fix
link
nm
objdump
pack
pprof
test2json
trace
vet
这些是 Go 语言的命令行工具。它们用于编译、测试和调试 Go 程序。
addr2line
可以将二进制文件中的地址转换为源代码中的行号和函数名。asm
可以将 Go 源代码编译为汇编语言。buildid
用于在编译后的二进制文件中添加或检索 build ID。cgo
用于在 Go 代码中使用 C 代码。compile
用于编译 Go 源代码。cover
用于收集和分析 Go 代码覆盖率数据。dist
用于构建和发布 Go 包。doc
用于查看 Go 包或程序的文档。fix
用于自动修复 Go 代码中的语法错误。link
用于链接 Go 代码。nm
用于显示符号表。objdump
用于显示二进制文件中的低级信息。pack
用于打包 Go 源代码。pprof
用于收集和分析性能数据。test2json
用于将测试输出转换为 JSON 格式。trace
用于收集和分析 Go 代码的运行时跟踪信息。vet
用于检查 Go 代码中的可能错误。
实例
go tool compile
go tool compile
用于编译 Go 源代码。下面是一个简单的例子,它编译了一个名为 "hello.go" 的文件,并生成了一个可执行文件 "hello"。
$ go tool compile -o hello hello.go
go tool compile
和go build
都用于编译 Go 源代码,但它们有一些重要的区别。
go build
是 Go 语言的标准命令,它用于编译 Go 源代码并生成可执行文件或库。它的使用非常简单,只需要指定一个或多个 Go 源文件即可。$ go build main.go
go tool compile
是 Go 语言的低级命令,它用于编译 Go 源代码并生成机器码。它提供了更多的编译选项和更细粒度的控制。$ go tool compile -o main main.go
一般情况下,我们建议使用
go build
,因为它更简单、更易用。如果需要更细粒度的控制或更多的编译选项,可以使用go tool compile
。
go tool cover
go tool cover
用于收集和分析 Go 代码覆盖率数据。下面是一个简单的例子,它运行了 "hello_test.go" 中的测试,并生成了一个覆盖率报告 "coverage.out"。
$ go test -coverprofile=coverage.out
$ go tool cover -func=coverage.out
go tool pprof
go tool pprof
用于收集和分析性能数据。下面是一个简单的例子,它运行了程序 "hello",并生成了一个性能分析文件 "cpu.pprof"。
$ go tool pprof -http=:8080 -seconds=60 -sample_index=2 -sample_interval=1s -sample_value=1s -file=cpu.pprof hello
这些工具提供了很多功能,在使用时,可以查看完整的帮助信息。
$ go tool <toolname> -h
cgo🔍
root@cubmaster01:/workspces/tiktok# go tool cgo -h usage: cgo -- [compiler options] file.go ... -V print version and exit -debug-define print relevant #defines -debug-gcc print gcc invocations -dynimport string if non-empty, print dynamic import data for that file -dynlinker record dynamic linker information in -dynimport mode -dynout string write -dynimport output to this file -dynpackage string set Go package for -dynimport output (default "main") -exportheader string where to write export header if any exported functions -gccgo generate files for use with gccgo -gccgopkgpath string -fgo-pkgpath option used with gccgo -gccgoprefix string -fgo-prefix option used with gccgo -godefs for bootstrap: write Go definitions for C file to standard output -import_runtime_cgo import runtime/cgo in generated code (default true) -import_syscall import syscall in generated code (default true) -importpath string import path of package being built (for comments in generated files) -objdir string object directory -srcdir string source directory -trimpath string applies supplied rewrites or trims prefixes to recorded source file paths