2013-08-22 2 views
1

gnu make를 사용하고 있으며 when multiple pattern rules match a target에보고 된 동일한 문제가 있습니다. 기본적으로 두 가지 규칙, 일반 규칙 및보다 구체적인 규칙이 동일한 대상과 일치하지만 더 일반적인 규칙은 실행됩니다 !!! 더 구체적인 것을 실행하고 싶습니다. 위 스레드에서 주어진 대답은 기본적으로 gnu make 3.82로 업그레이드하는 것입니다. 나는 버전 3.81을 가지고 있으며 많은 Linux 배포판에서 매우 일반적으로 발견되는 버전입니다.Makefile. 여러 규칙이 대상과 일치합니다.

gnu 버전 3.81에서 작동하는이 문제점에 대한 수정 사항이 있습니까?

미리 감사드립니다.

+0

* 둘 다 실행됩니까? 2.81을 사용하고 결과를 재현 할 수 없습니다 (첫 번째 일반 규칙 만 얻음). – Beta

+0

X-ref'd 질문 상태에 대한 대답은 다음과 같습니다. 버전 3.81 이하에서는 선택 기준이 다릅니다. make는 패턴과 일치하는 첫 번째 규칙을 선택합니다. '(1) 둘 다 실행되고 있습니까? (2) 더 구체적인 규칙이 먼저 나열되는지 확인할 수 있습니까? (아마도 기본 규칙이 실행되는 기본 규칙 인 경우 기본 규칙을 삭제하면됩니까?) –

+0

@Beta와 Jonahan,이 문제를 조사해 주셔서 감사합니다. 당신은 두 가지 모두 맞습니다. 단지 일반적인 것만 실행되어서 게시물을 업데이트했습니다. (나는 몇 가지 예를 가지고 놀았고 그 결과를 혼란 시켰습니다). 아직도 내 질문이 적용된다. 3.11에서 gnu make를 사용하여이 문제를 어떻게 해결할 수 있을까? – Alejandro

답변

1

특정 규칙을 일반적인 규칙 위에 올려 놓습니다.

+0

+1하지만 일반적인 규칙이 내장 규칙에서'% .o : % .c' (또는'% : % .c') 규칙 일 경우 어떻게하는지 자세히 설명 하시겠습니까? 내가 아는 것 같아 ('make -r'는 그것의 일부입니다), 확실하지 않습니다. –

+1

이것은 나를 위해 작동하지 않습니다, 유일한 좀 더 일반적인 규칙을 실행하는 더 일반적인 규칙을 주석하는 것입니다 ... – Shep