我正在尝试运行一些使用 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
我不明白这个输出是什么意思,但也许它对某人有帮助。
注意事项:
- 无论文件在我的电脑上的什么位置,都会发生这种情况。
- 此行为特定于
make
程序(其他程序如gfortran
和gcc
似乎工作正常) - 重命名文件没有任何区别。
- 我是这台电脑的管理员
- 当我从资源管理器或命令行运行程序时,行为相同。
- 我的防病毒程序 (Avast) 在扫描文件时未检测到任何问题。
- 我从 this SourceForge 得到了 MinGW 安装文件页面。
- 我从 this page 获得了 TDM-GCC 网络安装程序.
- 文件大小为 219,662 字节(来自主要的 MinGW 和 TDM-GCC 包)
- 我从命令行运行了
make
,我通过在上下文菜单中选择Run as Administrator
启动了命令提示符。 - 我还尝试通过选择
Run as Administrator
来运行make
。 - 发生此行为时,我运行命令
mingw32-make
。我还尝试将其重命名为make
和foo
之类的名称,结果相同。 - 这是第一次发生在 MinGW 上,它删除了原始文件,我使用
mingw-get
应用程序重新安装了它。从那时起,我开始复制原始的mingw32-make
进行测试。 - 对于
make
可执行文件,我拥有除特殊权限字段之外的所有权限(包括读取和执行)。
最佳答案
使用进程管理器后,我发现问题确实出在 Avast :S 有几行显示 avast 实际上在 Windows 开始执行文件之前删除了文件,这就是 Windows 消息的原因。不久前,我将 Avast 设置为“静音模式”;我认为此模式的唯一目的是抑制有关次要更新的通知,但显然它也允许 Avast 静默处理“威胁”。
在弄清楚之后,解决方案就很简单了。我刚刚进入设置并为 mingw32-make.exe
文件创建了一个异常(exception)。它现在可以正常运行。
非常感谢大家的帮助!
关于Windows 在运行时删除 make 可执行文件。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35194283/