在不同目录中包含源文件的Makefile

我有一个目录结构如下的项目:

                         $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在每个子目录(中part1part2等),使您能够独立构建它们。此外,Makefile在项目的根目录中有一个用于构建所有内容的目录。“根”

Makefile看起来类似于以下内容:

all:

+$(MAKE) -C part1

+$(MAKE) -C part2

+$(MAKE) -C part3

由于make目标中的每一行都在其自己的shell中运行,因此无需担心遍历目录树或其他目录。

我建议看一下GNU

make手册5.7;这是非常有帮助的。

以上是 在不同目录中包含源文件的Makefile 的全部内容, 来源链接: utcz.com/qa/407362.html

回到顶部