gpt4 book ai didi

c - 您需要在 makefile 中包含头文件吗?

转载 作者:行者123 更新时间:2023-12-05 08:43:33 24 4
gpt4 key购买 nike

bin/queueDriver.o:src/queueDriver.c include/queue.h 
${CC} ${CFLAGS} -o bin/queueDriver.o -c src/queueDriver.c

我正在学习 Makefile,此时我真的很困惑。我已经写了一个,现在我在胡闹,我发现如果我拿走

/include/queue.h 

在我的 makefile 之外,该项目仍然可以正确构建和执行。这是为什么?

最佳答案

make 规则行中冒号后的名称是依赖项。如果任何依赖项比规则的目标最近被修改,则执行规则。 (目标通常是一个与规则名称相同的文件,但也有异常(exception)。)

如果你删除任何依赖项,那么你的目标可能仍然会构建,但即使你更改它所依赖的文件也不会重建它(长期可能会导致更广泛的构建中断,例如当您尝试将两个从不同版本的头文件构建的对象链接在一起时)。


查找给定源文件所依赖的所有头文件通常不是人力所能完成的,因此人们通常使用各种辅助工具来自动生成依赖项。请注意,您可以稍后添加依赖项:

foo.o: foo.c      ## Manually written rule
$(CC) -c -o $@ $^

## added later, e.g. by a tool
foo.o: foo.h
foo.o: bar.h

但总而言之,make 是一个非常低级的构建工具,它通常只用于非常小的项目或作为其他一些项目的后端构建系统(例如 autotools 或 cmake)。

关于c - 您需要在 makefile 中包含头文件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28166990/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com