我注意到go build
现在正在创建.exe
和.exe~
我用Google搜索并没有发现任何内容,这只是在其中一个集市库被用作对我正在使用的软件包的依赖之后才开始发生的。
我需要.exe~
吗?我可以删除它吗?
答案 0 :(得分:4)
根据我在Windows上使用Go的经验,go build
命令将创建一个.exe~
影子文件,因为:
go build
,而之前的二进制文件仍在使用中。引擎盖下发生的事情是go build
会将现有的执行.exe重命名为.exe~,并将新的二进制文件放在.exe中以供下次执行。
我一直着迷于它如何对正在使用的文件,当20多年的所有其他Windows应用程序返回可怕的"文件在使用"错误。
我最好的猜测是,当你执行go二进制文件时,执行不会在文件上放置文件锁。因此,下一个构建可以简单地重命名使用中的一个。
在我的测试中(2014年),新的.exe是最新版本,而.exe~是以前运行的版本。
我做了很多测试,因为我的用例在重新编译时故意替换了现有的二进制文件。