社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
go build (go语言编译命令)
这个命令主要用于编译代码。在包的编译过程中,若有必要,会同时编译与之相关联的包。
如果是main
包,当你执行go build
之后,它就会在当前目录下生成一个可执行文件。如果你需要在$GOPATH/bin
下生成相应的文件,需要执行go install
如果某个项目文件夹下有多个文件,而你只想编译某个文件,就可在go build
之后加上文件名,例如go build a.go
;go build
命令默认会编译当前目录下的所有go文件
参数的介绍
-a 强制重新构建
-n 把需要执行的编译命令打印出来,但是不执行,这样就可以很容易的知道底层是如何运行的
-p n 指定可以并行可运行的编译数目,默认是CPU数目
-race 开启竞态检测
-v 编译时显示包名
-x 打印编译时会用到的所有命令
go clean(清除编译文件)
这个命令是用来移除当前源码包和关联源码包里面编译生成的文件。这些文件包括:
go build
命令时在当前目录下生成的与包名或者 Go 源码文件同名的可执行文件go test
命令并加入-c
标记时在当前目录下生成的以包名加“.test”后缀为名的文件go install
命令安装当前代码包时产生的结果文件go clean
命令清除编译文件,然后再将源码递交到 github 上,方便对于源码的管理go run(编译并运行)
go run
命令会编译源码,可执行文件被放在临时文件中被执行,工作目录被设置为当前目录,直接执行源码的 main() 函数,不会在当前目录留下可执行文件
go fmt(格式化代码文件)
go fmt
命令是 gofmt 的简单封装gofmt参数介绍:
-l 显示那些需要格式化的文件
-w 把改写后的内容直接写入到文件中,而不是作为结果打印到标准输出。
-r 添加形如“a[b:len(a)] -> a[b:]”的重写规则,方便我们做批量替换
-s 简化文件中的代码
-d 显示格式化前后的diff而不是写入文件,默认是false
-e 打印所有的语法错误到标准输出。如果不使用此标记,则只会打印不同行的前10个错误。
-cpuprofile 支持调试模式,写入相应的cpufile到指定的文件
go get(一键获取代码、编译并安装)
go get 命令可以借助代码管理工具通过远程拉取或更新代码包及其依赖包,并自动完成编译和安装。整个过程就像安装一个 App 一样简单。
这个命令是用来动态获取远程代码包的,目前支持的有BitBucket、GitHub、Google Code和Launchpad。这个命令在内部实际上分成了两步操作:第一步是下载源码包,第二步是执行go install。
参数介绍:
-d 只下载不安装
-f 只有在你包含了-u参数的时候才有效,不让-u去验证import中的每一个都已经获取了,这对于本地fork的包特别有用
-fix 在获取源码之后先运行fix,然后再去做其他的事情
-t 同时也下载需要为运行测试所需要的包
-u 强制使用网络去更新包和它的依赖包
-v 显示执行的命令
go install(编译并安装)
第一步是生成结果文件(可执行文件或者 .a 包),第二步会把编译好的结果移到 $GOPATH/pkg 或者 $GOPATH/bin。
go install 的编译过程有如下规律:
-o
附加参数进行自定义。go test(测试)
Test
为前缀go test
指令来执行,不需要 main() 作为函数入口Test
开头的函数会自动被执行常用的参数:
-bench regexp 执行相应的benchmarks,例如 -bench=.
-cover 开启测试覆盖率
-run regexp 只运行regexp匹配的函数,例如 -run=Array 那么就执行包含有Array开头的函数
-v 显示测试的详细命令
其他命令
go version 查看go当前的版本 go env 查看当前go的环境变量 go list 列出当前全部安装的package
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!