我正在编写自己代码的makefile,我意识到当我创建源文件列表时,我不会包含其中的一些。事实上,我所做的是以下内容:
SRCS = $(wildcard $(SRCS_DIR)*.c)
OBJS = $(SRCS:$(SRCS_DIR)%.c=$(OBJS_DIR)%.o)
和他们:
$(TARGET): $(OBJS)
@echo -e "\n\n\t\t*** Compiled $(TARGET) successfully! ***\n" ;
$(FL) $(LFLAGS) -o $(BUILDS_DIR)$@ \
$(OBJS) \
$(LIBS)
@echo -e "\n\n\t\t*** Linking $(TARGET) completed! ***\n"
$(OBJS): $(OBJS_DIR)%.o : $(SRCS_DIR)%.c
$(CC) $(CFLAGS) $(INCLUDES) \
-c $<\
-o $@
但是,其中一些文件没有.c但只有一个标题,即: ...的 common_functions.h 的 common_macros.h common_variables.c common_variables.h configure.c configure.h connectivity.c connectivity.h 的 enumerations.h error_warning_table.c error_warning_table.h estimation.c estimation.h inout.c inout.h ...的 structures.h
因此,当然,当我更改其中的内容时,它们不会再次编译,因为它们不在SRCS列表中。如何将它们添加到SRCS变量中?或者,如何只用这些文件创建一个COMMONS变量然后编译它们?
提前多多感谢,
斯特凡诺