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

通过Makefile变量执行批处理脚本的问题排查

问题描述

我原本通过批处理脚本运行可执行文件,现在需要改为通过Makefile执行该批处理脚本。

参考批处理脚本

@echo off
start name.exe

前期测试的成功写法

  • 直接定义run目标,执行make run时正常运行,且生成日志文件:
run:
    @cmd /C "$(CURDIR)\name.bat"
  • 通过变量关联all目标,执行make all时运行正常,能生成日志文件并将目标文件移至指定位置:
run:
    @cmd /C "$(CURDIR)\name.bat"
MOVE:=run
.PHONY: all
all: $(MOVE)

扩展到主Makefile时的异常

将上述逻辑整合到主Makefile(简化版本如下)后,执行make all时,其余步骤均正常,但关联批处理脚本的run目标并未执行:

run:    
    @cmd /C "$(CURDIR)/move.bat"  
FILE_LIST = BASE_SW  
MOVE:= run  
FILE_LIST:= BASE_SW # 存放文件的目录
LIB_FILE:= $(FILE_LIST).a  
$(LIB_FILE): $(MOVE) $(other dependency)    
         @mkdir-mingw -p $(dir name)         
         @$(AR) cr $(LIB_FILE_APP) $(ALL_OBJS_APP)  

.PHONY:all
all: $(LIB_FILE)

核心需求

需要让如下结构的Makefile成功执行批处理脚本:

run:
    @cmd /C "$(CURDIR)/move.bat"
MOVE:= run
LIB_FILE:= $(FILE).a
$(LIB_FILE): $(MOVE) $(Other dependencies)
          recipe
.PHONY: all
all: $(LIB_FILE)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 22:42:06