更改目录并执行 makefile 命令
changing the directory and executing the makefile commands
我有以下目录结构
project
|-- aws-cdk
|-- data
|-- some_project_files
|-- Makefile
使用 Makefile
,我正在执行目录 some_project_files
,这工作正常。除此之外,我还想执行 aws-cdk
。但我看不到更改 makefile 中目录的方法。我尝试 cd aws-cdk
然后执行,但我一直收到错误 make: *** No rule to make target. Stop.
如何进入back/change目录然后执行Makefile
在一个 makefile 中,您可以在规则内更改目录,但您不能在一个目录中说这组规则 运行s 而在另一个目录中说这组规则 运行s。这不会阻止您 运行ning 通过简单地给出文件的路径来对不同目录中的文件进行规则。 data/Makefile
可以包含 ../aws-cdk/something
甚至 ../aws-cdk/%.out: ../aws-cdk/%.in
的规则,这很好。
如果你真的想改变目录,你需要一个单独的生成文件。我强烈建议将它放在 运行 所在的目录中,这样 aws-cdk/Makefile
然后你就可以从 data
中的那个目录中调用它,比如 $(MAKE) -C ../aws-cdk
。你也可以把它放在其他任何地方,并给出一个明确的参数,比如 $(MAKE) -C ../aws-cdk -f aws-cdk.make
,但是当它需要两年后由从未见过的人修复 and/or 时,把它放在目录中会更容易理解它。
我有以下目录结构
project
|-- aws-cdk
|-- data
|-- some_project_files
|-- Makefile
使用 Makefile
,我正在执行目录 some_project_files
,这工作正常。除此之外,我还想执行 aws-cdk
。但我看不到更改 makefile 中目录的方法。我尝试 cd aws-cdk
然后执行,但我一直收到错误 make: *** No rule to make target. Stop.
如何进入back/change目录然后执行Makefile
在一个 makefile 中,您可以在规则内更改目录,但您不能在一个目录中说这组规则 运行s 而在另一个目录中说这组规则 运行s。这不会阻止您 运行ning 通过简单地给出文件的路径来对不同目录中的文件进行规则。 data/Makefile
可以包含 ../aws-cdk/something
甚至 ../aws-cdk/%.out: ../aws-cdk/%.in
的规则,这很好。
如果你真的想改变目录,你需要一个单独的生成文件。我强烈建议将它放在 运行 所在的目录中,这样 aws-cdk/Makefile
然后你就可以从 data
中的那个目录中调用它,比如 $(MAKE) -C ../aws-cdk
。你也可以把它放在其他任何地方,并给出一个明确的参数,比如 $(MAKE) -C ../aws-cdk -f aws-cdk.make
,但是当它需要两年后由从未见过的人修复 and/or 时,把它放在目录中会更容易理解它。