3

我已经访问了许多链接,包括 Peter Miller 的关于非递归生成的 PDF,但我仍然找不到关于如何实现它的简单示例。

我已经用谷歌搜索了几个小时,但其中许多似乎过于复杂,难以分辨事物的流程。

有人可以举几个目录的例子吗?我想看看随着更多目录的添加,makefile 是如何扩展的。

也许是这样的:

/src/
|->main.cc

|->dirA/a.cc
|->dirA/module.mk

|->dirB/b.cc
|->dirB/module.mk

/include/
|->main.h
|->a.h
|->b.h

然后main.o需要a.ob.o编译成一个可执行文件。

感谢您提前提供任何提示和指导!

4

2 回答 2

2

你没有说太多你想让这个系统做什么。这是一个粗略但有效的解决方案:

/src/Makefile:

vpath %.h include

main: main.o
    $(CXX) $^ -o $@

%.o: %.cc
    $(CXX) -c -Iinclude $< -o $@     # not the best way, but maybe the clearest

include dirA/module.mk
include dirB/module.mk

/src/dirA/module.mk:

main: dirA/a.o

dirA/a.o: a.h

/src/dirB/module.mk:

main: dirB/b.o

dirB/b.o: b.h

一旦你有这么多的工作,你可以做更多的事情。

于 2013-07-23T05:05:40.663 回答
0

这是示例: https ://github.com/cppfw/prorab/tree/master/tests

有一个主生成文件,其中包括子目录中的所有生成文件。

于 2016-08-27T17:10:12.290 回答