为了账号安全,请及时绑定邮箱和手机立即绑定

go 1.5:“go install”行为改变了吗?删除陈旧的可执行文件?

go 1.5:“go install”行为改变了吗?删除陈旧的可执行文件?

Go
沧海一幻觉 2021-11-01 16:36:23
直到 Go 1.4.2 在运行 go build 后运行 go install 时,我可以在当前文件夹中找到二进制文件。因此,以下 Linux 命令正在运行$ go build && go install && ./executable但是在安装 go 1.5 后,当我运行相同的命令时,-bash: ./executable: 没有那个文件或目录当我检查时,找不到可执行文件。Go 1.5 中的 go install 行为是否发生了变化?
查看完整描述

1 回答

?
墨色风雨

TA贡献1853条经验 获得超6个赞

是的,Go 1.5 中的行为发生了变化:


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


go build

<test, mostly works, make small change>

go install

在此 CL 之前,当前目录仍然具有来自“go build”的陈旧二进制文件。如果 $PATH 包含点,运行程序的名称将找到这个陈旧的二进制文件,而不是新安装的二进制文件。


我在发行说明中找不到任何提到的内容。可能是文档问题。


似乎解决方案是使用go install产生的二进制文件。


编辑: 如果您想跟进更新,这是 Go 问题跟踪器上的问题。应由 1.5.1 修复。


查看完整回答
反对 回复 2021-11-01
  • 1 回答
  • 0 关注
  • 148 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信