执行make编译faust时提示/bin/sh: -C: command not found如何解决
问题根因
报错/bin/sh: -C: command not found的直接原因是构建脚本执行cmake调用时,cmake命令的变量为空,拼接出来的执行语句变成了cd faustdir && -C ../backends/regular.cmake ...,系统找不到名为-C的可执行文件,因此抛出127错误码中断构建。
排查解决步骤
按顺序操作即可:
- 先确认cmake已正确安装且加入系统PATH
终端执行cmake --version,如果提示command not found,说明未安装cmake。macOS环境可直接通过Homebrew安装:
安装完成后重开终端,再次执行brew install cmakecmake --version确认能正常输出版本信息。 - 清理旧构建缓存重试
之前构建失败残留的缓存文件会导致路径检测异常,在faust源码根目录执行以下命令清缓存:
清理完成后直接重新执行rm -rf build/faustdir make cleanmake即可,大部分场景下这一步就能解决问题。 - 显式指定cmake路径构建
如果上述操作后仍报错,先执行which cmake拿到cmake的绝对路径(Apple Silicon Mac默认路径一般为/opt/homebrew/bin/cmake,Intel Mac默认一般为/usr/local/bin/cmake),执行make时显式传入cmake路径:
例如路径为/opt/homebrew/bin/cmake时,执行命令为make CMAKE=替换为你查到的cmake绝对路径make CMAKE=/opt/homebrew/bin/cmake。 - 确认子模块完整
如果是刚拉取的源码,先执行以下命令确保所有依赖子模块拉取完整,再走构建流程:git submodule update --init --recursive
内容的提问来源于stack exchange,提问作者Ingeneravit
相关产品推荐
相关产品推荐

