多目录makefile

时间:2013-09-23 19:06:16

标签: gcc makefile

请告诉我如何使用makefile构建包含src文件夹和include的项目。关于C.的项目 我在src文件夹中有三个文件:main.c test.c foo.c我有文件夹包含文件夹系统我有文件:test.h和foo.h 我想在main.c中写一下,例如#include,其中系统位于文件夹include中。

请举例说明makefile,因为我觉得很难理解。 谢谢你的回答!

1 个答案:

答案 0 :(得分:1)

你没有给我们太多信息,所以我不得不猜测。假设foo.c中有三个文件bar.cbaz.csrc/。假设您的makefile位于父目录(也包含src/include/)中,并且您希望在那里构建目标文件和可执行文件foo。这应该足够了:

VPATH = src
CFLAGS += -Iinclude

foo: foo.o bar.o baz.o
    $(CC) $^ -o $@

这是一个原始的makefile;一旦你对基础知识感到满意,就可以有更复杂的版本。

修改

在我们尝试跑步之前,我们必须学会走路。如果要编写可以处理复杂目录结构的makefile,则必须了解更简单的makefile。从与makefile相同的目录中的所有文件开始,包括源文件(foo.c)和头文件(foo.h)。然后你可以省略上面的makefile的前两行。 确保在创建src/并需要VPATH = src之前了解makefile ,然后在介绍include/CFLAGS += -Iinclude之前了解这一点。如果您尝试跳过这些步骤,则无法在更复杂的情况下取得成功。