サブフォルダー 04-Software Components / 03-Specific_sources および 08-Ext_Proj / SWC_ADC, SWC_PWM / 03-SRC を含む 2 つのフォルダーがあります。
03-Specific_sources にはいくつかの .c ファイルと .h ファイルがあり、1 つの .c ファイルとその .h ファイルが SWC_ADC / 03-SRC (ADC.c) と SWC_PWM / 03-SRC (PWM. c)
そして、それらをコンパイルしてリンクし、出力ファイルを取得したいと考えています。だから私がしたことはこれです:
EXEDIR_RELEASE := ../01-EXE\02-Release
OBJDIR_RELEASE := ../05-Obj\02-Release
SRCDIR := ../../../03-Specific_sources (This is the path from my make folder)
EXT_DIR := ../../08-Ext_Proj (This is the path from my make folder)
FIND_SRCS := $(wildcard $(EXT_DIR)/SWC_*/03-SRC/*.c)
INCLUDES := -I $(SRCDIR) $(foreach ext, $(wildcard $(EXT_DIR)/SWC*), -I $(ext)/03-SRC)
CSRCS := $(wildcard $(SRCDIR)/*.c) $(FIND_SRCS)
CSRCS := $(notdir $(CSRCS))
CROBJS := $(patsubst %.c, %.r34, $(CSRCS))
CROBJS := $(addprefix $(OBJDIR_RELEASE)/, $(CROBJS))
.PHONY: all
all: $(EXEDIR_RELEASE)/$(TARGET_RELEASE)
# Compiling
$(OBJDIR_RELEASE)/%.r34: $(FIND_SRCS)
@echo '$^ $@'
$(CC) $(CFLAGS) $(INCLUDES) -o $@ $<
# Linking
$(EXEDIR_RELEASE)/Target.mot: $(CROBJS)
$(LD) $(MFLAGS) # These are the linker and its flags
問題は、コンパイルが機能していないことです。したがって、エコーを実行すると、次のようになります。
ADC_prg.c PWM_prg.c DDF_prg.r34
ADC_prg.c PWM_prg.c DFAN_prg.r34
ADC_prg.c PWM_prg.c DFN_prg.r34
ADC_prg.c PWM_prg.c DIO_prg.r34
ADC_prg.c PWM_prg.c DMIO_prg.r34
したがって、数学パターン %.r34 が機能していないと思います。また、 ($(OBJDIR_RELEASE)/%.r34: $(FIND_SRCS)/%.c) を使用する
と、変数で
% を使用できないため、機能しません。
ワイルドカード機能が実行されています。
foreach 関数も使用しましたが、使用しませんでした。
ですから、皆さんの助けが必要です。今日配達があります...できるだけ早く対応してください。
よろしくお願いします