0

サブフォルダー 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 関数も使用しましたが、使用しませんでした。

ですから、皆さんの助けが必要です。今日配達があります...できるだけ早く対応してください。

よろしくお願いします

4

1 に答える 1