什么是go build

什么是go build,第1张

什么是go build

什么

go
命令不取决于我们是否运行一个“正常”的包或特殊
"main"
包。

对于包裹

  • go build
    构建您的包然后丢弃结果
  • go install
    builds 然后软件包安装到您的
    $GOPATH/pkg
    目录中。

对于命令(包

main

  • go build
    构建命令并将结果留在当前工作目录中
  • go install
    在临时目录中构建命令,然后将其移动到
    $GOPATH/bin
    .
传递给
go build
什么?

您可以将传递给

go build
要构建的包。您还可以传递
.go
来自单个目录的文件列表,然后将其视为指定单个包的源文件列表。

如果未提供包(导入路径),则构建将应用于当前目录。

一个导入路径可能包含一个或多个

"..."
通配符(在这种情况下它是一个模式)。
...
可以匹配任何字符串,例如
net/...
匹配
net
包及其任何子文件夹中的包。命令

go build ./...

通常用于在当前文件夹中构建包以及向下递归所有包。在项目根目录中发出的此命令会构建完整的项目。

有关指定包的更多信息,请运行

go help packages
.

关于模块

Go 1.11 中引入了对 Go 模块的初步支持,从 Go 1.13 开始,模块成为默认值。当

go
从包含
go.mod
文件的文件夹(或当前文件夹的父文件夹之一)
go
运行该工具时,该工具以模块感知模式运行(旧模式称为GOPATH 模式)。

在模块感知模式下,GOPATH 不再定义构建期间导入的含义,但它仍然存储下载的依赖项(在 GOPATH/pkg/mod 中)和安装的命令(在 GOPATH/bin 中,除非设置了 GOBIN)。

构建模块时,构建的内容由构建列表指定。构建列表最初只包含主模块(包含

go
运行命令的目录的模块),主模块的依赖项被递归添加到构建列表中(依赖项的依赖项也被添加)。

有关更多信息,请运行

go help modules


基本上,您可以使用

go build
检查包是否可以构建(连同它们的依赖项),同时
go install
还(永久)将结果安装在
$GOPATH
.

go build
如果一切正常,将静默终止,如果无法构建/编译包,则会向您提供错误消息。

每当该

go
工具安装包或二进制文件时,它也会安装它所具有的任何依赖项,因此运行
go install
还将自动安装您的程序所依赖的包(公开可用的“go gettable”包)。

您还可以通过运行以下命令获得更多帮助:

go help build

还值得注意的是,从 Go 1.5 开始,

go install
还删除了由
go build
( source )创建的可执行文件:

如果“go install”(不带参数,表示当前目录)成功,则删除“go build”写入的可执行文件(如果存在)。这避免留下陈旧的二进制文件......

要完成该列表,

go run
请将您的应用程序编译到一个临时文件夹中,然后启动该可执行二进制文件。当应用程序退出时,它会正确清理临时文件。



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5651282.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-16
下一篇2022-12-16

发表评论

登录后才能评论

评论列表(0条)

    保存