【发布时间】:2010-12-19 20:42:17
【问题描述】:
例如,我的 makefile 中有这样的内容:
all:
cd some_directory
但是当我输入make 时,我只看到'cd some_directory',就像在echo 命令中一样。
【问题讨论】:
-
不清楚你想做什么,但是,根据我对
make的经验,我从不想像这样更改目录。也许您应该尝试另一种方法来解决您的问题? -
认为您的目录很重要是一个常见的新手错误。对于大多数事情,它不是;
cd dir; cmd file几乎总是可以更有用地表示为cmd dir/file。 -
认为您当前的工作目录无关紧要是一个常见的新手错误。许多程序,尤其是 shell 脚本,在编写时都考虑到了特定值
.。确实,大多数工具的设计方式都不需要更改密码。但这并不总是正确的,我认为将其称为“错误”认为您的目录可能很重要并不是一个好主意。 -
提示:如果您的 cd 命令显示“没有这样的文件或目录”,即使(相对)目录确实存在,请检查您的 CDPATH 环境变量是否为空或包括“.”。 Make 执行带有“sh”的命令,如果设置了它,它只会通过 CDPATH 找到相对路径。这与 bash 形成对比,后者将尝试 .在咨询 CDPATH 之前。
-
补充@tripleee 所说的内容(12 年前,是的),有 个实例表明当前目录很重要。例如,在 MacOS 上,
zip命令将在压缩存档的结构中包含整个给定的搜索路径,这可能是不可取的。