You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

构建wxWidgets执行mingw32-make时出现访问被拒绝Error5报错

wxWidgets MinGW构建报Error 5权限拒绝的解决方法

问题表现

在wxWidgets源码包的build\msw目录下,通过CMD调用mingw32-make执行makefile.gcc构建时,抛出如下报错:

make (e=5): Acceso denegado.
mingw32-make: [makefile.gcc:5354: clean] Error 5 (ignored)

已尝试的无效排查操作包括:

  • 为wxWidgets解压文件夹添加Everyone用户并授予完全控制权限
  • 为C:\msys64\mingw64\bin下的make.exe配置完全控制权限
  • 关闭Windows Defender实时防护,问题仍存在

报错根因

这个报错触发于构建前的clean阶段,对应Windows系统标准的「权限不足/访问被拒」错误,之前的排查没有覆盖三个核心触发点:

  1. 在Windows原生CMD下直接调用MSYS2自带的make工具时,MSYS2的路径映射规则和Windows原生路径不兼容,clean阶段调用的删除指令会被系统拦截
  2. wxWidgets压缩包解压后,部分自带文件默认带只读属性,常规删除指令操作只读文件会直接抛权限错误,之前的权限配置没有处理文件级的只读标记
  3. 如果源码放在C盘根目录、Program Files等受UAC管控的系统路径下,普通权限启动的CMD默认没有目录的写入、删除权限

修复步骤

按顺序操作,每步完成后可重新执行构建命令验证:

  1. 用管理员权限启动终端
    右键点击命令提示符/对应终端图标,选择「以管理员身份运行」,再切换到build\msw目录执行构建命令,先排除UAC权限拦截。
  2. 递归移除所有源码文件的只读属性
    在管理员权限的终端中切换到wxWidgets源码根目录,执行以下命令清除所有文件、文件夹的只读标记:
    attrib -r /s /d *.*
    
  3. 使用匹配的终端环境执行构建
    不要在原生Windows CMD中调用MSYS2的MinGW工具链,直接打开开始菜单里的「MSYS2 MinGW 64-bit」终端(不要开MSYS2默认的MSYS终端),通过Linux风格路径切换到build/msw目录(例如源码放在D盘dev目录下,路径为/d/dev/wxWidgets/build/msw),再执行构建命令。
  4. 手动跳过自带clean逻辑
    如果上述操作后仍在clean阶段报错,直接手动删除build\msw目录下的gcc_mswuddll、gcc_mswudll两个默认构建产物目录,再执行构建命令,即可绕过makefile中触发报错的clean行。

额外提醒:不要将wxWidgets源码放在C:\Program Files、C:\Windows等系统保护路径下,也不要放在包含中文、空格的路径中,避免路径解析异常触发额外报错。

内容的提问来源于stack exchange,提问作者ThreeNamesGrace

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 04:21:14