Compiler construction 选择Makefile上目录中的所有c文件

Compiler construction 选择Makefile上目录中的所有c文件,compiler-construction,makefile,Compiler Construction,Makefile,我有一个Makefile,我想修改它,选择某个目录中的所有c文件,而不是单独指定所有c文件 谢谢,这是代码:(我只粘贴与主题相关的片段) #MQTT路径 MQTT_DIR=$(示例_DIR)/MQTT_lib #TRSMIO路径 TRSMIO_DIR=$(示例_DIR)/TRSMIO_lib #UTIL路径 UTIL\u DIR=$(示例\u DIR)/UTIL\u lib #用于启动自定义(示例)代码的SDK“startup.c”文件的位置。 SDK\u CS=$(SDK\u DIR)/sta

我有一个Makefile,我想修改它,选择某个目录中的所有c文件,而不是单独指定所有c文件

谢谢,这是代码:(我只粘贴与主题相关的片段)

#MQTT路径
MQTT_DIR=$(示例_DIR)/MQTT_lib
#TRSMIO路径
TRSMIO_DIR=$(示例_DIR)/TRSMIO_lib
#UTIL路径
UTIL\u DIR=$(示例\u DIR)/UTIL\u lib
#用于启动自定义(示例)代码的SDK“startup.c”文件的位置。
SDK\u CS=$(SDK\u DIR)/startup.c
#主任务的依赖关系
MQTT_CS=$(MQTT_DIR)/libmqtt_util.c
MQTT_LIB=$(MQTT_DIR)/libmqtt.c
MQTT_CGI=$(MQTT_DIR)/libmqtt_CGI.c
MQTT_MGR=$(MQTT_DIR)/libmqtt_config_MGR.c
LIB_TIMER=$(UTIL_DIR)/LIB_TIMER.c
TRSMIO_HOSTLINK=$(TRSMIO_DIR)/TRSMIO_HOSTLINK.c
TRSMIO_HOSTLINK_CONFIG=$(TRSMIO_DIR)/TRSMIO_HOSTLINK_CONFIG_mgr.c
LIB_NET_DEBUG=$(UTIL_DIR)/LIB_netdebug.c
任务管理器=$(UTIL\u DIR)/TASK\u MGR.c
#主要任务
TRSMIO_TEST=$(SAMPLE_DIR)/TRSMIO_TEST.c
#MQTT_TEST=$(SAMPLE_DIR)/libmqtt_TEST.c
#示例源代码文件的位置和名称:
SAMPLE_CS=$(SAMPLE_DIR)/$(MAKECMDGOALS).c
#Evolution OS对象模块库的位置,静态链接到
#示例代码。
EVOS_LIB=$(SDK_DIR)/$(PLATFORM_DIR)/evolution.LIB
EVOS_WEB_LIB=$(SDK_DIR)/$(平台_DIR)/evolution_with_WEB.LIB
#EVOS_WEB_LIB=$(SDK_DIR)/$(平台_DIR)/evolution_no_WEB.LIB
#所有C源代码文件都将生成并包含在映像中。
所有编译源=\
$(SDK_CS)\
$(任务经理)\
$(LIB\u NET\u调试)\
$(MQTT_-CS)\
$(MQTT_CGI)\
$(MQTT_LIB)\
$(MQTT_经理)\
$(TRSMIO_主机链接)\
$(TRSMIO_主机链接_配置)\
$(LIB_计时器)\
$(TRSMIO_测试)\
$(样本)
work/$(notdir$(示例c:.o)):$(示例c)
@回音$<
@$(CC)$(CFLAGS)-c$<-o$@
work/$(notdir$(LIB_计时器:.c=.o)):$(LIB_计时器)
@回音$<
@$(CC)$(CFLAGS)-c$<-o$@
work/$(notdir$(任务管理器:.c=.o)):$(任务管理器)
@回音$<
@$(CC)$(CFLAGS)-c$<-o$@
work/$(notdir$(LIB\u NET\u DEBUG:.c=.o)):$(LIB\u NET\u DEBUG)
@回音$<
@$(CC)$(CFLAGS)-c$<-o$@
work/$(notdir$(MQTT_-MGR:.c=.o)):$(MQTT_-MGR)
@回音$<
@$(CC)$(CFLAGS)-c$<-o$@
work/$(notdir$(TRSMIO\u HOSTLINK\u CONFIG:.c=.o)):$(TRSMIO\u HOSTLINK\u CONFIG)
@回音$<
@$(CC)$(CFLAGS)-c$<-o$@
work/$(notdir$(TRSMIO_HOSTLINK:.c=.o)):$(TRSMIO_HOSTLINK)
@回音$<
@$(CC)$(CFLAGS)-c$<-o$@
work/$(notdir$(TRSMIO_TEST:.c=.o)):$(TRSMIO_TEST)
@回音$<
@$(CC)$(CFLAGS)-c$<-o$@
work/$(notdir$(MQTT_CGI:.c=.o)):$(MQTT_CGI)
@回音$<
@$(CC)$(CFLAGS)-c$<-o$@
work/$(notdir$(MQTT_-CS:.c=.o)):$(MQTT_-CS)
@回音$<
@$(CC)$(CFLAGS)-c$<-o$@
work/$(notdir$(MQTT_-LIB:.c=.o)):$(MQTT_-LIB)
@回音$<
@$(CC)$(CFLAGS)-c$<-o$@
work/$(notdir$(SDK\u CS:.c=.o)):$(SDK\u CS)
@回音$<
@$(CC)$(CFLAGS)-c$<-o$@

我不确定您的尝试是否明智,但以下是如何做到这一点:

ALL_C_FILES = $(wildcard $(SOME_DIR)/*.c)

我不确定您的尝试是否明智,但以下是如何做到这一点:

ALL_C_FILES = $(wildcard $(SOME_DIR)/*.c)

如果没有路径,如何获取*.c文件的名称?上面的命令也包括路径!无论如何,我找到了命令:
$(notdir$(wildcard$(SOME_DIR)/*.c))
。如果没有路径,我如何获得*.c文件的名称?上面的命令也包括路径!不管怎样,我找到了命令:
$(notdir$(wildcard$(SOME_DIR)/*.c))