C中的Makefile无法正常工作 - 假冒没有执行任何操作?

时间:2017-02-08 15:50:48

标签: c makefile

我正在尝试编译我的C代码并且一切正常,唯一的问题是我的清理没有被执行..我不知道为什么,我已经读过关于虚假目标但我无法看到我的错误在哪里。

这是我的makefile的最小例子

CC = gcc
LD=gcc
CFLAGS = -O3 -Wextra -Wall

CFLAGS_DEBUG = $(CFLAGS) -Wall -pg -g -std=c99

OBJDIR_DEBUG = obj/Debug
OUT_DEBUG = bin/Debug/myProgramm

CFLAGS_RELEASE = $(CFLAGS) -O3 -Wall -std=c99

OBJDIR_RELEASE = obj/Release
OUT_RELEASE = bin/Release/myProgramm


OBJ_DEBUG = $(OBJDIR_DEBUG)/src/main.o $(OBJDIR_DEBUG)/src/file_one.o

OBJ_RELEASE = $(OBJDIR_RELEASE)/src/main.o $(OBJDIR_RELEASE)/src/file_one.o


.PHONY: all clean

all: debug release

clean: clean_debug clean_release

before_debug: 
    test -d bin/Debug || mkdir -p bin/Debug
    test -d $(OBJDIR_DEBUG)/src || mkdir -p $(OBJDIR_DEBUG)/src

debug: before_debug out_debug

out_debug: before_debug $(OBJ_DEBUG)
    $(LD) $(OBJ_DEBUG) -o $(OUT_DEBUG) 

$(OBJDIR_DEBUG)/src/main.o: src/main.c
    $(CC) $(CFLAGS_DEBUG) -c src/main.c -o $(OBJDIR_DEBUG)/src/main.o

$(OBJDIR_DEBUG)/src/file_one.o: src/file_one.c
    $(CC) $(CFLAGS_DEBUG) -c src/file_one.c -o $(OBJDIR_DEBUG)/src/file_one.o


clean_debug: 
    rm -f $(OBJ_DEBUG) $(OUT_DEBUG)
    rm -rf bin/Debug
    rm -rf $(OBJDIR_DEBUG)/src

before_release: 
    test -d bin/Release || mkdir -p bin/Release
    test -d $(OBJDIR_RELEASE)/src || mkdir -p $(OBJDIR_RELEASE)/src

release: before_release out_release

out_release: before_release $(OBJ_RELEASE) 
    $(LD) -o $(OUT_RELEASE) $(OBJ_RELEASE)

$(OBJDIR_RELEASE)/src/main.o: src/main.c
    $(CC) $(CFLAGS_RELEASE) -c src/main.c -o $(OBJDIR_RELEASE)/src/main.o

$(OBJDIR_RELEASE)/src/file_one.o: src/file_one.c
    $(CC) $(CFLAGS_RELEASE) -c src/file_one.c -o $(OBJDIR_RELEASE)/src/file_one.o

clean_release: 
    rm -f $(OBJ_RELEASE) $(OUT_RELEASE)
    rm -rf bin/Release
    rm -rf $(OBJDIR_RELEASE)/src

0 个答案:

没有答案