필자가 수정해야 할 작업 코드가 주어졌지만 아래 제공된 제공된 makefile을 사용하여 실제로 프로그램을 컴파일 할 수는 없습니다.Makefile 컴파일 오류가 적용되지 않습니다. -std = c99
INCLUDE_PATH = -I/usr/X11/include -I$(BLDR_FREEGLUT_INCLUDE_PATH)
LIBRARY_PATH = -L/usr/X11/lib -L$(BLDR_FREEGLUT_LIB_PATH)
CCFLAGS = -std=c99
LDFLAGS = -lGL -lGLU -lglut -lX11 -lpthread
GCC = gcc
APP = nbody
all: $(APP)
@echo Make done
clean:
@rm -f *.o $(APP)
nbody: nbody.c
$(GCC) nbody.c -o nbody $(INCLUDE_PATH) $(CCFLAGS) $(LIBRARY_PATH) $(LDFLAGS)
make 명령의 첫 번째 출력 행은 다음과 같습니다. 그러나 그 아래
gcc nbody.c -o nbody -I/usr/X11/include -I -std=c99 -L/usr/X11/lib -L -lGL -lGLU -lglut -lX11 -lpthread
는 C99에 대한 플래그가 제대로 지정 될 것으로 보인다 이후 이해하지 않는, 어떤 일 만있다 "C99 모드에서 허용"라고 말하는 오류가 있습니다. 이 문제를 해결하기 위해 $ (CCFLAGS) 값의 위치를 변경하지 않고 시도했습니다.
이 메이크 파일을 수정하여 프로그램이 준수하도록하려면 어떻게해야합니까?
반드시 그렇지는 않습니다. 그것은 셸 변수를 내보낼 수 있지만 그것은 또한 내부 변수가 메이크 파일에 정의 된 수 있습니다. 그러나, 당신이 그것을 사용했던 방식으로, 그것은 공백으로 남겨 둘 수 없습니다. 왜냐하면 다음의 인수가 dirname이 될 것으로 기대하는 닫히지 않은'-I'를 생성하기 때문입니다. – keltar