2013-02-21 2 views
1

모든 지역 나는 그것은 작동하지 않습니다이 도움이 규칙MOC 메이크 규칙

moc_%.cpp: %.h 
    $(MOC) $(DEFINES) $(INCLUDES) $< -o [email protected] 

보고 계속 검색 할 수 있습니다. Makefile가는

MOC:= /path/to/moc 

.PHONY clean: 
    rm moc_*.cpp 

moc: moc_file.cpp 

#moc_file.cpp: file.h # this works 
# $(MOC) $< -o [email protected] 

moc_%.cpp: %.h 
    $(MOC) $< -o [email protected] 

주석 처리 된 행은 작동하지만 일반 규칙은 그렇지 않습니다. 그것은 밖으로 인쇄합니다 No rule to make target 'moc_file.cpp', needed by 'moc' 사람이 왜 또는 내가 뭘 잘못하고있는 통찰력을 줄 수 있습니까?

+0

대신, 당신이 그들을 적용 할 대상의 목록을 앞에 붙여 정적 패턴 규칙로 돌립니다. Make의 어떤 버전을 사용하고 있습니까? – Beta

+0

두 버전이 있는데, 하나는 3.81과 3.82입니다. 둘 다 작동하지 않습니다. – NebulaFox

+0

당신의 메이크 파일은 저에게 잘 작동합니다. 이 오류는 기본적으로 패턴 규칙이 적용되지 않는다는 것을 의미합니다. 예를 들어 file.h가없는 경우입니다. 그러나 당신은 명시적인 규칙이 작동한다고 말합니다. 따라서 그것이 존재해야합니다. 귀하가 게시 한 것 이상으로 귀하의 환경에 뭔가가 있습니다. "make -rd"를 실행하고 결과가 어떤 통찰력을 제공하는지보십시오. – MadScientist

답변

1

날씨 또는 시간대에 따라 make에 따라 패턴 규칙이 사용되거나 사용되지 않을 수 있습니다 (내가 좋아하지 않는다고 말할 수 있습니까?). 일반적인 규칙은 나를 위해 작동

moc_file.cpp: moc_%.cpp: %.h 
    $(MOC) $< -o [email protected] 
관련 문제