Windows10环境编译LimeReport报错Error 127的原因是什么?
问题成因
- 编译调用的shell环境不匹配:报错信息中的
/usr/bin/sh前缀说明当前MinGW make调用了Git/MSYS2提供的Unix模拟shell,而非Windows原生cmd。Windows格式的盘符路径I:\Programs\xxx、反斜杠路径分隔符在Unix shell中无法被正确解析,即便目标文件真实存在也会抛出找不到命令的错误。 - 项目构建脚本未适配Windows MinGW环境:你使用的LimeReport源码默认适配Linux构建环境,翻译生成(ts构建目标)的配置逻辑未做Windows兼容处理,直接传入了Windows风格的lupdate完整路径,在Unix shell环境下无法识别。
- 环境变量继承异常:你配置的Windows系统PATH仅对cmd、powershell等原生Windows终端生效,Unix模拟shell会独立加载自身的PATH配置,未继承你添加的Qt二进制目录路径,因此无法直接定位到lupdate程序。
操作正确性说明
你的操作不存在错误:Qt环境配置正常,可正常编译其他项目;源码来源为官方仓库,本身可正常在Linux下编译,本次报错为跨平台构建的适配问题导致。
可行解决方案
- 方案一:跳过翻译文件构建
编辑LimeReport主项目的.pro文件,注释掉包含lrelease、embed_translations的配置行,重新执行qmake后编译即可,跳过翻译生成步骤不会影响核心功能使用。 - 方案二:强制make使用Windows cmd执行命令
打开Qt Creator对应Kit的构建配置,在Make参数栏添加SHELL=cmd.exe,强制构建过程调用原生cmd执行命令,即可正常识别Windows路径完成编译。 - 方案三:适配Unix shell的路径格式
在项目构建环境变量中手动指定LUPDATE变量值为Unix风格路径,将I:\Programs\Qt\Qt5.9.9\5.9.9\mingw53_32\bin\lupdate.exe转换为/i/Programs/Qt/Qt5.9.9/5.9.9/mingw53_32/bin/lupdate.exe后重新构建即可。
内容的提问来源于stack exchange,提问作者Bharath Ram
相关产品推荐
相关产品推荐

