Windows11编译AudioToolboxWrapper遇make Error 127求助
解决Windows11下
make install Error 127及Make排查方法 一、Make的排查日志与配置文件
- 启用详细执行日志:执行
make install V=1,会输出所有执行的命令细节,包括调用的脚本、路径参数等,这是排查make执行问题最直接的方式。 - 查看生成的Makefile:CMake在build目录下生成的Makefile是make的核心配置文件,里面定义了编译、安装的所有步骤。重点查看
install目标对应的命令块,定位涉及/bin/sh的调用逻辑。 - 日志重定向保存:如果需要留存日志用于后续分析,执行
make install > make_install.log 2>&1,将标准输出和错误输出全部写入日志文件。
二、解决make install Error 127(/bin/sh: No such file or directory)
Error 127本质是找不到指定的shell或可执行脚本,在Windows11环境下,核心问题通常和Unix风格工具链的环境配置有关,解决思路如下:
- 使用正确的终端环境
如果你依赖MinGW、MSYS2或Git Bash这类Unix兼容工具链,必须在对应的终端(比如MSYS2 Bash、Git Bash)中执行make install,而不是Windows默认的CMD或PowerShell。这类终端自带/bin/sh环境,能正确解析Makefile中的Unix风格命令。 - CMake生成Makefile时指定shell路径
在运行CMake配置阶段,明确指定系统中存在的shell路径,比如使用MSYS2的bash:
或者直接在CMakeLists.txt中添加配置:cmake -G "Unix Makefiles" -DCMAKE_SHELL=/usr/bin/bash.exe ..set(CMAKE_SHELL "/usr/bin/bash.exe" CACHE STRING "Path to compatible bash shell") - 修正Makefile中的硬编码shell路径
打开build目录下的Makefile,搜索/bin/sh,如果发现硬编码的路径,替换为你系统中实际的shell路径(比如C:/msys64/usr/bin/bash.exe,注意使用正斜杠)。 - 调整环境变量优先级
将MSYS2或Git Bash的bin目录(比如C:\msys64\usr\bin)添加到系统环境变量PATH的最前端,确保系统优先调用兼容的Unix工具,避免冲突。
内容的提问来源于stack exchange,提问作者corruptsmurf
相关产品推荐
相关产品推荐

