Gcc 多目录生成文件
请告诉我如何使用makefile来构建包含src文件夹和include的项目。关于C。 src文件夹中有三个文件:main.ctest.cfoo.c,文件夹系统中有include文件:test.h和foo.h 我想在main.c中编写,例如,#include,系统在include文件夹中的位置 请给出一个makefile示例,因为我觉得它很难理解。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位于父
谢谢你的回答 您没有给我们提供太多信息,所以我只能猜测。假设
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下有一个带有fileradio.h
的文件夹系统,文件夹头有filesystem.h
。我有一个文件夹src,其中包含文件main.c
、radio.c
和system.c
。我想进入文件main.c
write#include
或#include我读过的是文档makefile,但我没有找到(