C++ 如何处理静态库中任何.cpp中未包含的.hpp

C++ 如何处理静态库中任何.cpp中未包含的.hpp,c++,makefile,static-libraries,C++,Makefile,Static Libraries,我正在编写一个用于构建图书馆的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 $&l

我正在编写一个用于构建图书馆的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 $@
SRCS=$(通配符*.cpp)
OBJS=$(SRCS:.cpp=.o)
OUT=my_library#有一个名为my_library的.cpp文件
$(OUT):$(OBJS)
应收账款差饷租值$(OUT).a$(OUT).o
$(OBJS):$(SRCS)
$(CC)$(SCR)$(标志)-c$<-o$@

这有一个问题,如果我有一个悬空的头文件,带有悬空,我的意思是它不包含在任何.CPP文件中,Mag文件不考虑它的编译。< /P>


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

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

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

如果头文件未包含在任何.cpp文件中,为什么要编译它?它显然没有被使用,因为它是一个静态库,所以它仍然可以包含在使用库的项目中。我不明白-你在头文件中实现了库吗?谁应该使用这个头文件?通常,只包含头的库不需要编译到静态库中。例如,我使用头文件一次性包含库的子模块。我想你是对的,我可以跳过它们,这些头将由使用库的最终代码编译。静态库可以有一个关联的头(或多个)。我看不出有什么问题。如果头文件没有包含在任何.cpp文件中,为什么要编译它?它显然没有被使用,因为它是一个静态库,所以它仍然可以包含在使用库的项目中。我不明白-你在头文件中实现了库吗?谁应该使用这个头文件?通常,只包含头的库不需要编译到静态库中。例如,我使用头文件一次性包含库的子模块。我想你是对的,我可以跳过它们,这些头将由使用库的最终代码编译。静态库可以有一个关联的头(或多个)。我看不出有什么问题。