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

Windows环境下使用Make调试时如何保留生成的.sh Shell脚本?

在Windows中保留Make生成的Shell脚本以调试执行流程

如果你在Windows环境使用GNU Make(比如MinGW、MSYS2或WSL环境),想要保留执行过程中生成的临时.sh脚本,可通过以下几种方法实现:

方法一:使用调试参数查看并保留脚本

GNU Make的调试模式会输出临时脚本的详细信息,甚至在部分场景下不会自动删除脚本:

  • 执行Make时添加-d参数(全量调试):
    make -d [目标]
    
    该参数会输出大量调试日志,其中包含临时shell脚本的路径、脚本内容,以及执行过程的每一步细节。你可以从日志中找到脚本路径,手动复制保存。
  • 若只关注shell脚本相关的调试信息,可使用--debug=b参数(聚焦于执行过程的调试):
    make --debug=b [目标]
    

方法二:强制保留临时脚本

通过设置Make的环境变量或参数,让它不自动删除生成的临时shell脚本:

  • 在执行Make前设置MAKEFLAGS环境变量:
    export MAKEFLAGS="--keep-temp"
    make [目标]
    
    注:--keep-temp参数会让Make保留所有临时生成的文件,包括shell脚本。
  • 也可以直接在命令行中传递参数:
    make --keep-temp [目标]
    

方法三:手动导出命令到脚本

如果你只需要获取Make要执行的命令序列,可使用-n(--dry-run)参数,它会打印所有将要执行的命令但不实际运行,你可以将这些命令重定向到.sh文件中:

make -n [目标] > debug_script.sh

之后你可以手动执行这个脚本,或者修改后调试。

针对Windows原生Make(如nmake)的补充

如果你使用的是Windows自带的nmake工具,可通过以下方式获取执行脚本:

  • 使用/n参数打印命令不执行,重定向到文件:
    nmake /n [目标] > debug_script.bat
    
    注:nmake默认生成的是.bat脚本而非.sh,若你需要.sh脚本,需确保nmake配置了使用shell环境。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 23:45:01