makefile을 사용하려고 할 때 /bin/sh에 오류가 발생했습니다.

makefile을 사용하려고 할 때 /bin/sh에 오류가 발생했습니다.

makefile을 사용하여 파일을 컴파일하려고 하는데 어떤 이유로 인해 /bin/sh다음과 같은 오류가 발생합니다.

nvc FLAGS(LDFLAGS) black_scholes.o gaussian.o main.o parser.o random.o dcmt0.4/lib/random_seed.o timer.o util.o -o hw1.x
/bin/sh: -c: line 0: syntax error near unexpected token `('
/bin/sh: -c: line 0: `nvc FLAGS(LDFLAGS) black_scholes.o gaussian.o main.o parser.o random.o dcmt0.4/lib/random_seed.o timer.o util.o -o hw1.x'
make: *** [Makefile:16: hw1.x] Error 1

내 makefile의 내용은 다음과 같습니다.


LDFLAGS += -Ldcmt0.4/lib -ldcmt
include Makefile.include


HW1_INCS = black_scholes.h gaussian.h parser.h random.h timer.h util.h
HW1_C_SRCS = black_scholes.c gaussian.c main.c parser.c random.c dcmt0.4/lib/random_seed.c timer.c util.c
HW1_C_OBJS = $(HW1_C_SRCS:.c=.o)
HW1_EXE = hw1.x

all: hw1.x

%.o: %.c

$(CC) -c $(CCFLAGS) $(ACCFLAGS) $< -o $@

hw1.x: $(HW1_C_OBJS) dcmt0.4/lib/libdcmt.a
$(CC) $LFLAGS$ (LDFLAGS) $(HW1_C_OBJS) -o $@

dcmt0.4/lib/libdcmt.a: 
make -C dcmt0.4/lib
black_scholes.o: black_scholes.c black_scholes.h gaussian.h random.h util.h
gaussian.o: gaussian.c gaussian.h util.h
main.o: main.c black_scholes.h parser.h random.h timer.h
parser.o: parser.c parser.h
random.o: random.c random.h
dcmt0.4/lib/random_seed.o: dcmt0.4/lib/random_seed.c
timer.o: timer.c timer.h
util.o: util.c util.h

clean:

make -C dcmt0.4/lib clean

rm -f $(HW1_C_OBJS) $(HW1_EXE)

이것은 내 makefile.include의 내용입니다.

CC = nvc
LINKER = nvc
LDFLAGS = -lm

일반적으로 makefile의 오류는 가 아닌 거기에 오류가 있음을 나타내기 때문에 오류가 어디에 있는지 정말로 이해하지 못합니다. /bin/sh오류를 이해하거나 수정하는 데 도움을 주시면 대단히 감사하겠습니다.

답변1

오류는 다음 줄에 있습니다.

$(CC) $LFLAGS$ (LDFLAGS) $(HW1_C_OBJS) -o $@

$LFLAGS$L뒤에 FLAGS; 가 오는 것으로 해석되며 (이름이 단일 공백인 변수의 값) 뒤에 가 오는 것으로 $ (LDFLAGS)해석됩니다 . 이것이 바로 출력을 얻는 이유입니다.$(LDFLAGS)FLAGS(LDFLAGS)

문제를 해결하려면 다음을 사용하세요.

$(CC) $(LDFLAGS) $(HW1_C_OBJS) -o $@

관련 정보