Go 检查包是否将生成

Go 检查包是否将生成,go,build,Go,Build,我如何确定一个包是否将生成,而不安装它、运行它的测试或生成二进制文件 有人提到,对多个包使用go build,只是测试它们是否构建。如何为单个软件包执行此操作?go build 对于包main,go build将生成一个二进制文件。您可以将其转储到tmp目录中,稍后操作系统将为您清理该目录 go build-o/tmp/oswilldeleteme 不幸的是,您不能将go build的输出通过管道传输到空设备。请参阅此问题:go build 对于包main,go build将生成一个二进制文件。

我如何确定一个包是否将生成,而不安装它、运行它的测试或生成二进制文件

有人提到,对多个包使用
go build
,只是测试它们是否构建。如何为单个软件包执行此操作?

go build


对于包main,go build将生成一个二进制文件。您可以将其转储到tmp目录中,稍后操作系统将为您清理该目录

go build-o/tmp/oswilldeleteme

不幸的是,您不能将
go build
的输出通过管道传输到空设备。请参阅此问题:

go build


对于包main,go build将生成一个二进制文件。您可以将其转储到tmp目录中,稍后操作系统将为您清理该目录

go build-o/tmp/oswilldeleteme


不幸的是,您不能将
go build
的输出通过管道传输到空设备。请参阅本期:

这就是
go build
所做的,除了
main
软件包。如果二进制文件是一个
包主文件
去构建bla和去清理bla
,那么可能只是删除二进制文件,也可能是简单的
去构建
。在没有任何参数的情况下,它会在当前目录中构建包(如果不能,则会给出一个错误)。对于命名包
go build import\u path
works。除了在完成时删除的临时构建目录,任何
$GOPATH/pkg
文件都不会更新,也不会生成任何内容。这就是
go build
所做的,除了
main
包。如果二进制文件是一个
包主文件
去构建bla和去清理bla
,那么可能只是删除二进制文件,也可能是简单的
去构建
。在没有任何参数的情况下,它会在当前目录中构建包(如果不能,则会给出一个错误)。对于命名包
go build import\u path
works。除了在完成时删除的临时构建目录外,既不更新任何
$GOPATH/pkg
文件,也不生成任何内容。“在操作系统稍后将为您清理的tmp目录中”;国际海事组织认为,这是不应该假设的。如果清除
/tmp
是管理员的决定/配置,则可能需要几天,下次重新启动时,或者根本不需要。另外,
/tmp
可能会受到限制(例如,一个小分区或内存文件系统),因此在不清理的情况下乱扔
/tmp
是个坏主意。(例如,如果您经常这样做,可能是一个别名或小脚本,它执行类似于
DIR=`mktemp-d-t“gobuild”`;go build-o“$DIR/foo”;rm-rf--“$DIR”
)的操作。您可能会在这样的时间之前用完磁盘空间,但我确实给了它一个硬编码的tmp位置,这样每个新二进制文件都会覆盖上一个。我认为,即使磁盘空间很可能出现问题,要求像这样的每个构建都进行
makeclean
,这是一种很不礼貌的做法。这就是人们抱怨上网的原因,如果
Go-build
可以被指示将垃圾桶留在它使用的tmp workdir中,那就太棒了。“在操作系统稍后会为你清理的tmp目录中”;国际海事组织认为,这是不应该假设的。如果清除
/tmp
是管理员的决定/配置,则可能需要几天,下次重新启动时,或者根本不需要。另外,
/tmp
可能会受到限制(例如,一个小分区或内存文件系统),因此在不清理的情况下乱扔
/tmp
是个坏主意。(例如,如果您经常这样做,可能是一个别名或小脚本,它执行类似于
DIR=`mktemp-d-t“gobuild”`;go build-o“$DIR/foo”;rm-rf--“$DIR”
)的操作。您可能会在这样的时间之前用完磁盘空间,但我确实给了它一个硬编码的tmp位置,这样每个新二进制文件都会覆盖上一个。我认为,即使磁盘空间很可能出现问题,要求像这样的每个构建都进行
makeclean
,这是一种很不礼貌的做法。这就是人们抱怨上网的原因。如果
Go-build
可以被指示将垃圾桶留在它使用的tmp workdir中,那就太棒了。