这篇文章可能会有些偏见。这篇文章描述了个人会用到的去工具参数,还有一些是我周围的人遇到的问题。如果有问题大家可以留的言,你是刚开始使用去工具么?或者你想扩展知识?这篇文章将会描述每个人都需要知道的去工具参数。下面话不多说了,来一看看详细的介绍吧。
- x会列出来<代码>去构建代码> 调用到的所有命令。
如果你对去的工具链好奇,或者使用了一个跨C编译器,并且想知道调用外部编译器用到的具体参数,或者怀疑链接器有故障,使用- x来查看所有调用。
去构建- x美元 工作=/var/文件夹/00/1b8h8000h01000cxqpysvccm005d21/T/go-build600909754 mkdir - p/hello/性能/_obj/美元的工作 mkdir - p $工作/hello/性能/_obj/exe/cd/用户/jbd/src/hello/性能/用户/jbd/去/pkg/工具/darwin_amd64/编译- o $工作/hello/性能。美元-trimpath工作- p主要推进-buildid bbf8e880e7dd4114f42a7f57717f9ea5cc1dd18d - d _/用户/jbd/src/hello/性能-我工作包。美元/perf.go cd。/用户/jbd/去/pkg - o/工具/darwin_amd64/链接工作/hello/性能/美元_obj/exe。工作- l $ -extld=叮当声-buildmode=exe -buildid=bbf8e880e7dd4114f42a7f57717f9ea5cc1dd18d美元/hello/perf.a工作 mv工作/hello/性能/美元_obj/exe。出性能 美元去构建-gcflags
这个参数将会传递给编译器。<代码>工具编译- help> 代码列出来了所有我们可以传递给编译器的参数。
例如,禁用编译器优化和内联优化,你可以使用下面的参数:
美元去构建-gcflags=" - n - i "
这个命令可以为测试提供完整的输出。它会打印测试名称,状态(成功或者失败),测试所耗费的时间,还有测试的日志等等。
如果不使用- v参数来测试,输出很少很多,我经常使用- v参数来打开详细测试日志。例子:
美元去测试- v上下文===TestBackground运行 推荐- - - - - -通过:TestBackground(0.00秒)===TestTODO运行 推荐- - - - - -通过:TestTODO(0.00秒)===TestWithCancel运行 推荐- - - - - -通过:TestWithCancel(0.10秒)===TestParentFinishesChild运行 推荐- - - - - -通过:TestParentFinishesChild(0.00秒)===TestChildFinishesFirst运行 推荐- - - - - -通过:TestChildFinishesFirst(0.00秒)===TestDeadline运行 推荐- - - - - -通过:TestDeadline(0.16秒)===TestTimeout运行 推荐- - - - - -通过:TestTimeout(0.16秒)===TestCanceledTimeout运行 推荐- - - - - -通过:TestCanceledTimeout(0.10秒) … 通过 好的背景2.426 s >之前
现在可以使用去工具提供的运动中参数进行竞争检测。它会检测并报告竞争。开发的过程中用这个命令来检测一下。
注:完整的命令是:
美元去测试运动中mypkg//测试包 去跑步运动中mysrc美元。//运行源文件 美元去构建运动中mycmd构建命令//
你可以在测试的时候通过国营参数来正则匹配过滤需要测试的代码。下面的命令只会运行测试例子。
美元去测试国营=>之前的例子
当测试一个包的时候,可以输出一个测试覆盖率,然后使用命令去工具来在浏览器里面可视化。
美元去测试-coverprofile=c。了,,,,去工具包括html=c.out测试fmt包
去测试-coverprofile=c。了fmt
一般很少有人知道走的这个功能,你可以通过-插入另一个程序。这个参数允许通过去工具完成一些外部工作。
一个常见的需求场景是你需要在一些宿主机上面执行一些测试。我们可以通过-命令调用亚行命令来把二进制文件导入安卓设备并且可以收集到结果信息。参考这个来在安卓设备上面执行。
如果你通过去命令获取包,而这个包已经存在于本地的GOPATH,那么这个命令并不会帮你更新包。你可以强制更新到最新版。
如果你是一个库作者,你最好在你的安装说明上加上- u参数,例如,golint是这么做的:
美元去- u github.com/golang/lint/golint
如果你想克隆一个代码仓库到GOPATH里面,跳过编译和安装环节,使用- d参数。这样它只会下载包并且在编译和安装之前停止。
去语言中一些不常见的命令参数详解