gpt4 book ai didi

c++ - 在什么情况下 make 需要以 .h 文件为目标

转载 作者:行者123 更新时间:2023-11-30 01:11:34 27 4
gpt4 key购买 nike

在我看到的 makefile 示例中,头文件被列为(并且仅被列为)像这样的目标的依赖项,没有特定的规则以 cc 文件的目标方式来定位头文件本例中的规则

sample1.o : sample1.cc sampleheader1.h
g++ -Wall -c sample1.cc

我的项目有这样的目录结构 源码/你好.cc 标题/cctz.h

其中cctz.hhello.cc包含的头文件。

但是,当我为我的项目创建 makefile 时,make 提示没有没有规则来生成 hello.o 所需的目标 'cctz.h。 makefile 在我的 src 目录中,因此 ../headers 可以到达 cctz.h

CPPOPTIONS = -I../headers
all: hello
hello: hello.o
g++ -Wall -o $@
hello.o: hello.cc cctz.h
g++ -Wall $(CPPOPTIONS) -c hello.cc

因此,在我的程序中,我需要target 头文件,但在我见过的其他 makefile 中(例如我提供的片段),头文件仅列为目标,没有规则可以做到。我做错了什么或者为什么我需要针对我的案例中的 cctz.h 文件(以及我该怎么做)

最佳答案

make 程序首先在 makefiles 目录中查找文件,除非您指定文件的路径:

hello.o: hello.cc ../headers/cctz.h

make 对您在 e.g. 中设置的编译器选项一无所知CPPOPTIONS.

你也可以设置VPATH :

VPATH = ../headers

关于c++ - 在什么情况下 make 需要以 .h 文件为目标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35942031/

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