查看: 4|回复: 2

记录两个 WIN11 下使用 mingw-make 碰到的离谱环境错误

[复制链接]

1

主题

1

回帖

5

积分

新手上路

积分
5
发表于 7 天前 | 显示全部楼层 |阅读模式
1. mingw32-make.exe: *** INTERNAL: readdir: Invalid argument

该错误没有找到具体的根因, 只知道解决方案:

修改环境变量, 删除或者将Microsoft Store的环境变量移动到最后

2. CreateProcess(xxx.bat, xxx.bat, ...) failed.

mingw32-make.exe 在 WIN11 上执行 gcc 命令的时候, 会将 gcc 命令封装成一个 bat 脚本执行;

当时非常迷惑的原因是:

手动调用 cmd, 并在 cmd 中执行该 bat 脚本, 执行正常, 一旦涉及到使用 Makefile, CreateProcess 这个 API 就会执行失败;

该问题的主要原因是:
WIN11 下的C:\Windows\SysWOW64下的 cmd.exe 丢了, 但是C:\Windows\System32下的 cmd 还在, AI 给出的解释是 由于 mingw32-make.exe 是 32 位的程序, 会被 windows 加载到 64 位环境下执行, 但是 64 位环境(C:\Windows\SysWOW64)下没有 cmd.exe, 所以报错. (windows 的报错友好度真的低, 忙了一晚上定位出来这个坑爹的环境问题)
回复

使用道具 举报

0

主题

8

回帖

16

积分

新手上路

积分
16
发表于 7 天前 | 显示全部楼层
mingw 是个无休无尽的坑,早日迁移到 wsl 早日停止浪费生命(愿意折腾除外
回复

使用道具 举报

1

主题

1

回帖

5

积分

新手上路

积分
5
 楼主| 发表于 7 天前 | 显示全部楼层
@HankAviator 行业需求, 实际上是给类似使用 PLC 上位机的用户提供 c 函数编码功能....
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖
返回顶部