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

如何查找GNU make命令的原始启动目录?

实现方案

GNU make 本身没有内置专门存储原始调用目录的变量,不存在你要的开箱即用的SOME_MAGIC_VARIABLE,可以通过以下两种常用方法实现需求:


方案1:显式传递原始目录(兼容性最高,全平台可用)

调用make时主动将当前shell的工作目录作为自定义变量传入,不需要修改Makefile之外的配置,也不依赖平台特性。

示例Makefile:

# 增加默认值,直接在Makefile所在目录调用make时也不会出错
ORIG_PWD ?= $(CURDIR)

all:
	@echo $(CURDIR)
	@echo $(ORIG_PWD)

调用命令:

cd /other/place
make ORIG_PWD=$(pwd) -C /some/location

输出结果:

/some/location
/other/place

方案2:配置别名自动传递(无需每次手动加参数)

如果不想每次调用都手动加ORIG_PWD=$(pwd),可以给make配置shell别名,会自动将当前工作目录传入:

  1. 把下面的配置写入你的shell配置文件(比如~/.bashrc、~/.zshrc):
alias make='make ORIG_PWD=$(pwd)'
  1. 执行source ~/.bashrc(对应你用的shell配置文件)生效后,直接正常调用make即可:
cd /other/place
make -C /some/location

同样可以得到预期输出。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 05:36:03