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

如何获取Microsoft NMAKE Makefile路径以实现任意目录构建EXE?

在Microsoft NMAKE中获取Makefile所在目录的方法

要实现和GNU Make中$(dir $(realpath $(lastword $(MAKEFILE_LIST))))相同的效果,在NMAKE里可以通过组合内置宏和批处理命令完成,具体实现如下:

  1. 核心代码实现
    在你的NMAKE Makefile中添加以下内容:
# 获取当前Makefile的绝对路径目录
!IFDEF MAKEFILE
    # 组合nmake执行目录与指定的Makefile路径,生成绝对路径
    MAKEFILE_ABS = $(MAKEDIR)\$(MAKEFILE)
    # 用批处理for命令提取文件的目录部分
    MAKEFILE_DIR = $(shell for %%i in ("$(MAKEFILE_ABS)") do @echo %%~dpi)
!ELSE
    # 未通过/F指定Makefile时,默认当前执行目录即为Makefile所在目录
    MAKEFILE_DIR = $(MAKEDIR)\
!ENDIF
  1. 代码说明
  • MAKEFILE是NMAKE内置宏:当你通过nmake /F path/to/your/Makefile指定Makefile时,该宏会被赋值为你指定的路径(支持相对或绝对路径)。
  • MAKEDIR是NMAKE内置宏,代表执行nmake命令时的工作目录。
  • 批处理for命令中的%%~dpi参数会提取文件路径的驱动器+目录部分,自动完成相对/绝对路径的转换。
  • 若未使用/F选项(直接在Makefile所在目录执行nmake),则直接用MAKEDIR作为Makefile的所在目录。
  1. 验证使用
    可添加一行消息命令验证结果:
!MESSAGE 当前Makefile所在目录:$(MAKEFILE_DIR)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 17:20:13