栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

什么去构建?(进行构建与进行安装)

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

什么去构建?(进行构建与进行安装)

go
命令的作用取决于我们是针对“常规”软件包还是针对特殊
"main"
软件包运行它。

对于包装

  • go build
    构建您的软件包,然后 丢弃结果
  • go install
    构建然后 安装 在您的
    $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
检查软件包是否可以构建(以及它们的依赖关系),同时
goinstall
也可以(永久地)将结果安装在的正确文件夹中
$GOPATH

go build
如果一切正常,它将以静默方式终止,如果无法构建/编译软件包,则将显示错误消息。

每当该

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

首先,请阅读官方的“ 如何编写Go代码” 页面。

有关该

go
工具的更多信息: Command go

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

go help build

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

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

如果成功执行“ go install”(不带参数,表示当前目录),请删除“ go
build”编写的可执行文件(如果存在)。这样可以避免留下过时的二进制文件…

要完成该列表,

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

戴夫·切尼(Dave Cheney)的著作《如何建造》启发了这个问题。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/373213.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号