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

如何解决Makefile中cd命令失效,切换路径执行命令?

Makefile中实现路径切换的正确方式

你遇到的问题本质是:Makefile里的每一行命令都会启动一个独立的Shell进程。单独写cd .\src只会改变当前进程的工作目录,下一行的python test.py是在新的Shell进程中执行,此时工作目录又回到了Makefile所在的D:\proj,自然找不到test.py。

要在不修改python test.py命令的前提下实现路径切换,有两种常用写法:

方式一:将命令合并到同一行

把cd和执行命令用&&或;连起来,让它们在同一个Shell进程中执行:

chdir:
    cd .\src && python test.py

用&&的好处是只有cd成功时才会执行后续命令,避免路径不存在时执行无效命令。如果不管cd是否成功都要执行,可换成;:

chdir:
    cd .\src; python test.py

方式二:用反斜杠换行保持命令在同一Shell进程

如果想分开写两行,可在第一行末尾加反斜杠(注意反斜杠后不能有空格),让Makefile把两行视为同一个Shell命令:

chdir:
    cd .\src; \
    python test.py

这种写法更易读,尤其当后续命令较长时。

执行修改后的make chdir,test.py会输出src目录的路径,说明切换成功。

内容的提问来源于stack exchange,提问作者笑先生

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 06:50:53