Gcc 多目录生成文件

Gcc 多目录生成文件,gcc,makefile,Gcc,Makefile,请告诉我如何使用makefile来构建包含src文件夹和include的项目。关于C。 src文件夹中有三个文件:main.ctest.cfoo.c,文件夹系统中有include文件:test.h和foo.h 我想在main.c中编写,例如,#include,系统在include文件夹中的位置 请给出一个makefile示例,因为我觉得它很难理解。 谢谢你的回答 您没有给我们提供太多信息,所以我只能猜测。假设src/中有三个文件,foo.c、bar.c和baz.c。假设您的makefile位于父

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

请给出一个makefile示例,因为我觉得它很难理解。
谢谢你的回答

您没有给我们提供太多信息,所以我只能猜测。假设
src/
中有三个文件,
foo.c
bar.c
baz.c
。假设您的makefile位于父目录中(该目录还包含
src/
include/
),并且您希望在那里构建对象文件和可执行文件
foo
。这应足以:

VPATH = src
CFLAGS += -Iinclude

foo: foo.o bar.o baz.o
    $(CC) $^ -o $@
这是一个粗糙的makefile;一旦您熟悉了基础知识,就可以使用更复杂的版本

编辑:


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

我建议在
CFLAGS
行中添加
-Wall
。您也可以添加
-g
Beta,thanx作为答案)但我不太明白,我们CFLAGS在编译时指定了VPATH,以及为什么会有VPATH,如果不难,您可以提供更多详细信息。我收集机器人项目。我有一个文件夹src和一个文件夹include,在include下有一个带有file
radio.h
的文件夹系统,文件夹头有file
system.h
。我有一个文件夹src,其中包含文件
main.c
radio.c
system.c
。我想进入文件
main.c
write
#include
#include我读过的是文档makefile,但我没有找到(