如何处理静态库中不包含在任何 .cpp 中的 .hpp

How to handle .hpp not included in any .cpp in a static library

我正在编写一个用于构建库的 makefile,这是它的摘录,与我要问的问题相关:

SRCS = $(wildcard *.cpp)
OBJS = $(SRCS:.cpp=.o)
OUT = my_library     #there is a .cpp file called my_library

$(OUT): $(OBJS)
    ar rvs $(OUT).a $(OUT).o

$(OBJS): $(SRCS)
    $(CC) $(SCRS) $(FLAGS) -c $< -o $@

这有一个问题,如果我有一个悬空头文件,悬空意味着它不包含在任何 .cpp 文件中,makefile 不会将其用于编译。

我该怎么办?要手动列出它们并将它们添加为 $(OBJS) 的依赖项和目标?我不认为这是我必须遵循的方式。

头文件只是定义源文件中的内容或生成代码在使用时。在库文件的情况下,它们生成的代码将在调用代码中产生,而不是库代码,因此编译库时不需要生成任何内容。