我有一个目录结构如下的项目:
$projectroot | +---------------+----------------+ | | | part1/ part2/ part3/ | | | +------+-----+ +---+----+ +---+-----+ | | | | | | | data/ src/ inc/ src/ inc/ src/ inc/
我应该如何编写一个可以在part / src中(或在任何地方)的makefile来在部分c / c ++源文件中完成/链接?/ src?
我可以做一些事情-I $ projectroot / part1 / src -I $ projectroot / part1 / inc -I $ projectroot / part2 / src …
如果那行得通,有没有更简单的方法来做到这一点。我见过在每个相应部分中都有一个makefile的项目吗?文件夹。[在这篇文章中,我在bash语法中使用了问号]
传统的方法是有一个Makefile在每个子目录(中part1,part2等),使您能够独立构建它们。此外,Makefile在项目的根目录中有一个用于构建所有内容的目录。“根” Makefile看起来类似于以下内容:
Makefile
part1
part2
all: +$(MAKE) -C part1 +$(MAKE) -C part2 +$(MAKE) -C part3
由于make目标中的每一行都在其自己的shell中运行,因此无需担心遍历目录树或其他目录。
我建议看一下GNU make手册5.7;这是非常有帮助的。