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

GNU Make 4.3(MinGW版)wildcard函数出现文件名截断/丢失问题

问题成因

这是i686-w64-mingw32平台编译的GNU Make 4.3版本的已知原生bug,问题出在该版本底层实现wildcard函数依赖的glob通配符匹配模块,mingw移植时的文件名解析逻辑存在边界错误,处理带前缀的.c文件名时会错误截断前缀字符,最终返回异常的短文件名结果,甚至出现文件重复、丢失的情况。

解决方法
  • 方案1:升级GNU Make版本
    直接更换为4.4及以上版本的mingw编译GNU Make,该bug在后续版本中已经被官方修复,替换二进制文件即可正常使用wildcard功能。
  • 方案2:降级GNU Make版本
    回退到GNU Make 4.2.1的mingw编译版本,该版本不存在glob模块的匹配错误问题。
  • 方案3:临时规避(无需更换Make版本)
    放弃使用wildcard函数,改用调用shell命令的方式获取.c文件列表,适配不同环境的写法参考:
    # 原生Windows cmd环境适配
    SRC_C = $(shell dir /b *.c 2>nul)
    # MSYS/Cygwin环境适配
    SRC_C = $(shell ls *.c 2>/dev/null)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 17:57:04