2012-08-09 2 views
0

OS X Lion의 메이크 파일에 어려움을 겪고 있습니다. 내 모든 .c 파일을 현재 디렉토리의 객체로 컴파일하기 위해 % pattern 규칙을 사용하려고합니다. 나는 규칙을 사용하고있다 :Mac OS X에서 GNU Make Pattern 규칙

%.o : %.c                  
    $(CC) -c $(CFLAGS) $< -o [email protected] 

그러나 make는 대상이 없다고 말한다. 나는 그 패턴을 gMake의 특징이라고 알고 있지만 -v는 GNU make가 설치되어 있다고 말합니다. 또한 이전 스타일을 시도했습니다.

.cpp.o: 
     gcc $^ -o [email protected] 

하지만 작동하지 않습니다. 내가 뭘 잘못하고있어? 감사.

+0

[MacPorts] (http://www.macports.org/)에서 [gmake] (https://trac.macports.org/browser/trunk/dports/devel/gmake/Portfile)를 시도하십시오. –

+0

입력 파일'.c' 파일이나'.cpp' 파일입니까? – tripleee

+0

예제는 예제 일뿐입니다. 실제에서는'.cc' 파일을 검색합니다. '% .o : % .cc $ (CXX) -c $ (CXXFLAGS) $^-o $ @' – selfsx

답변

2

전체 메이크 파일의 경우 실제로는 대상이 포함되어 있지 않습니다. make file.o으로 호출하거나 빌드하려는 파일의 이름을 나열하는 허위 대상 all을 추가하십시오. 사용자가 지정한 패턴 규칙입니다 무슨 간단

.PHONY: all 
all: $(patsubst %.cpp,%.o,$(wildcard *.cpp)) 

그것은이 될 수 있지만 지정 실제 목표는 "이 파일입니다"당신이 유형 *.o의 목표를 구축하려는 경우가 여기에 그렇게하는 방법 " 우리는 "만들고 싶다.

by, GNU Make는 C 파일을 컴파일하는 방법을 이미 알고 있으므로 내장 패턴 규칙을 재정의해야 할 필요가 없다면 실제로는 정의 할 필요가 없습니다.

+0

감사합니다. 나는 시도 할 것이다. – selfsx