Till Go 1.4.2当我在运行go build之后运行go install时,我可以在当前文件夹中找到二进制文件.因此,Linux命令正在运行
$ go build && go install && ./executable
但安装完1.5后,当我运行相同的命令时,我得到了,
-bash:./ executable:没有这样的文件或目录
当我检查时,没有可执行文件可供查找.Go 1.5中的安装行为是否已更改?
是的,Go 1.5中的行为发生了变化:
如果'go install'(没有参数,意味着当前目录)成功,则删除由'go build'写的可执行文件(如果存在).这样可以避免在以下序列中留下陈旧的二进制文件:
Run Code Online (Sandbox Code Playgroud)go build <test, mostly works, make small change> go install
在此CL之前,当前目录仍然具有来自"go build"的陈旧二进制文件.如果$ PATH包含点,则运行程序名称将找到这个陈旧的二进制文件,而不是新安装的二进制文件.
我在发行说明中找不到任何提及的内容.可能是文档问题.
似乎解决方案是使用go install
已生成的二进制文件.
编辑: 如果您想要跟进更新,这是Go问题跟踪器上的问题.应该由1.5.1修正.