2012-04-10 3 views
1

내 메이크 파일을 쓰는 IDE로 코딩의 고급 스러움을 즐기고있다. Iv는 내가 오랫동안 '짧게 자르기'로 결정했기 때문에 몇 가지를 읽었다. 설명서를 읽고 메이크 파일에 대한 몇 가지 동영상을보고 준결승 메이크 파일을 만들었습니다. 문제는 내가 라이브러리를 연결하는 방법을 모르겠다는 것입니다.내 자신의 메이크 파일 만들기 [오류 255]

CPPS := $(shell ls src/*cpp) 
TEMP := $(subst src/,obj/,$(CPPS)) 
OBJS := $(subst .cpp,.o,$(TEMP)) 
HEADERS := $(shell ls inc/*.h) 
EXEC := bin/testfile 

all: $(EXEC) 

$(EXEC) : $(OBJS) $(HEADERS) 
g++ -I inc/ $(OBJS) -o $(EXEC) -lSDL -lGLU 
$(EXEC) 

obj/%.o: src/%.cpp 
g++ -Wall -I inc/ -c $< -o [email protected] 

PS : 나는 -lSDL -lGLU 등을 의미하는 '도서관 플래그'를 말할 때 단지 넣다 내가 넣어 어디든지

들이 제대로 작동 해달라고 ... 잘못된 일을 말하고있다.

내가 lib 디렉토리 플래그를 삽입 할 때 이것은 내가 오류입니다 make: *** [bin/testfile] Error 255

오류 255의 명령 셸이 특정 규칙의 명령을 찾을 수 없다는 결과로 메이크업에 의해 생성된다 .

내가 포함시키지 않으면 표준 '정의되지 않은'메시지가 나타납니다.

위의 사항에 대한 도움을 주시면 대단히 감사하겠습니다. 감사합니다.

+0

붙여 넣은 스 니펫에'-l' 플래그가 표시되지 않습니다. "10 번째 줄" "마지막 줄"과 같은 것을 따르기가 어렵습니다 –

+0

죄송합니다, 모두 고정 :) – Elgoog

+0

"일하지 않는 것"이라고 말할 때 직면하는 오류를 알려줄 수 있습니까? –

답변

1

빌드 한 후에 실행 파일을 실행하려고하는 것처럼 보입니까?

그럴 경우 PATH에 현재 디렉토리가 없다는 것이 문제입니다. 그래서 $(EXEC)을 찾을 수 없습니다.

직접 실행하려면 ./$(EXEC)해야합니다.

그리고 다른 빌드 (PHONY) 대상으로 프로그램을 이동해야합니다. 그래야만 빌드 단계를 수행하고 $(EXEC)을 빌드 할 필요가 없을 때 실행할 수 있습니다.

(나는 탭이 없으면 그냥 stackoverflow 형식화라고 가정하고 있습니다. 그렇지 않으면 make이 불평 할 것입니다).

+0

돈에 대한 당신의 강타! 고마워, 라이브러리를 올바르게 연결하고 있습니까? 내 prog가 실행되지 않는 것 같지만 오류가 표시되지 않습니다. 그러나 IDE를 사용하여 빌드하면 잘 작동합니다 ... – Elgoog

+0

@Elgoog 충분한 정보를 제공하지 못했습니다. 내가 제안한 바 변경 했니? 나는 당신의 Makefile에서 프로그램을 실행하는 것을 제거하고, 그것을 직접 실행한다 - 그러면 무슨 일이 일어나는지 더 쉽게 알 수있다. –

관련 문제