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

标签 windows makefile gnu-make

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

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

Windows cannot access the specified path, or file. You may not have the appropriate permissions to access the item.

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

我使用 Microsoft (R) File Checksum Integrity Verifier 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. 我还尝试通过选择 Run as Administrator 来运行 make
  12. 发生此行为时,我运行命令 mingw32-make。我还尝试将其重命名为 makefoo 之类的名称,结果相同。
  13. 这是第一次发生在 MinGW 上,它删除了原始文件,我使用 mingw-get 应用程序重新安装了它。从那时起,我开始复制原始的 mingw32-make 进行测试。
  14. 对于 make 可执行文件,我拥有除特殊权限字段之外的所有权限(包括读取和执行)。

最佳答案

使用进程管理器后,我发现问题确实出在 Avast :S 有几行显示 avast 实际上在 Windows 开始执行文件之前删除了文件,这就是 Windows 消息的原因。不久前,我将 Avast 设置为“静音模式”;我认为此模式的唯一目的是抑制有关次要更新的通知,但显然它也允许 Avast 静默处理“威胁”。

在弄清楚之后,解决方案就很简单了。我刚刚进入设置并为 mingw32-make.exe 文件创建了一个异常(exception)。它现在可以正常运行。

非常感谢大家的帮助!

关于Windows 在运行时删除 make 可执行文件。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35194283/

相关文章:

ruby - 跨平台Ruby方法清除终端屏幕

gcc - Makefile:发出警告 gcc 版本低于 4.8.0

linux - 转换针对Linux和Bash的Makefile

makefile - 为什么 "make"仅在隐式时才删除目标文件

c - 如何在 Turbo C IDE 中查看程序的输出?

用于循环变量扩展的 Windows 批处理脚本不起作用

c++ - 如何使用makefile独立编译和更新一个文件夹下的所有文件

c++ - Makefile: multiple definition and undefined reference 错误

makefile - 如何让 GNU 明确测试失败?

windows - 在 Windows Phone 8 中从 MySQL 数据库绑定(bind) LongListSelector 中的字符串