2016-07-08 3 views
1

폴더에 개체를 추가 :메이크는이 작품 왜 이해가 안

CC = gcc 
CFLAGS = -fPIC 
LDFLAGS = -shared 
SRC = src/file.c 
OBJ := $(SRC:.c=.o) 

test: $(OBJ) 
    $(CC) $(CFLAGS) $(LDFLAGS) -o [email protected] $^ 

을 그리고 이것은하지 않습니다

CC = gcc 
CFLAGS = -fPIC 
LDFLAGS = -shared 
SRC = file.c 
OBJ := $(addprefix output/, $(SRC:.c=.o)) 
SRC := $(addprefix src/, $(SRC)) 

test: $(OBJ) 
    $(CC) $(CFLAGS) $(LDFLAGS) -o [email protected] $^ 

이 난 단지에 대한 출력 폴더를 만들려고 해요으로 모든 OBJ. GCC 날 나를 난처 잎 "출력/file.o을"... 수 있도록하는 규칙이 없다 말한다

어떤 X에 대한 X.c에서 X.o을 구축하는 방법을 알고있는 기본 규칙이 있기 때문에입니다

답변

0

하지만,이 src/X.c에서 output/X.o을 빌드하는 방법을 알고있는 기본 제공 규칙이 아닙니다. 어떤 특수 디렉토리 구조를 생각해 내는지에 대해 알고있는 내장 규칙이 어떻게 될 수 있습니까?

당신은 당신의 자신의 규칙을 정의해야합니다 :

output/%.o : src/%.c 
     $(COMPILE.c) $(OUTPUT_OPTION) $< 
+0

완벽! 그게 다야 - 고마워. –

관련 문제