Windows在运行时删除make可执行文件。为什么?

时间:2016-02-04 06:47:13

标签: windows makefile gnu-make

我正在尝试运行一些使用make的代码。我已经在我的64位Windows 7机器上下载并安装了MinGW(标准32位)和MinDM的TDM-GCC风格。

当我在管理员模式中运行make(即mingw32-make.exe时,收到以下错误消息:

  

Windows无法访问指定的路径或文件。您可能没有相应的权限来访问该项目。

奇怪/可怕的部分是,在运行时,会立即删除exe文件

我使用Microsoft(R)文件校验和完整性验证程序V2.05按照评论中的建议运行了校验和SHA1:

C:\path\to\folder>fciv.exe -sha1 mingw32-make.exe
//
// File Checksum Integrity Verifier version 2.05.
//
c8ae5c780ab7bed652883d6443b5bfe5e23d30c9 mingw32-make.exe

我不明白这个输出意味着什么,但也许对某人有帮助。

注意:

  1. 无论文件位于我的电脑上,都会发生这种情况。
  2. 此行为特定于make程序(gfortrangcc等其他程序似乎正常工作)
  3. 重命名文件没有任何区别。
  4. 我是个人电脑的管理员
  5. 从资源管理器或命令行运行程序时的行为相同。
  6. 我的防病毒程序(Avast)在扫描时没有检测到文件的任何问题。
  7. 我从this SourceForge页面获得了MinGW设置文件。
  8. 我从this page获得了TDM-GCC网络安装程序。
  9. 文件大小为219,662字节(来自主MinGW和TDM-GCC包)
  10. 我已从命令行运行make,我已通过在上下文菜单中选择Run as Administrator启动了命令提示符。
  11. 我选择了make后,我还尝试运行Run as Administrator
  12. 发生此行为时,我运行命令mingw32-make。我也尝试将其重命名为makefoo,结果相同。
  13. MinGW首次发生这种情况时删除了原始文件,并使用mingw-get应用程序重新安装了该文件。在我开始制作原始mingw32-make的副本以进行测试之后。
  14. 对于make可执行文件,除了特殊权限字段外,我拥有所有权限(包括读取和执行)。

2 个答案:

答案 0 :(得分:3)

使用进程管理器之后我发现它确实是Avast的问题:S几行显示avast实际上在Windows执行它之前删除了文件,这就是Windows消息的原因。我把Avast放在了“沉默模式”中。一会儿回来;我认为这种模式的唯一目的是禁止有关次要更新的通知,但显然它也允许Avast处理威胁'也默默地。

在确定解决方案之后很简单。我刚进入设置并为mingw32-make.exe文件创建了一个例外。它现在运行没有问题。

非常感谢大家的帮助!

答案 1 :(得分:1)

用户帐户具有管理员权限,但是当用户开始工作时,并未考虑所有权限,只需启动应用程序以使用管理员模式运行进行编译,请尝试以下操作:https://technet.microsoft.com/en-in/library/cc781763(v=ws.10).aspx