ProgramingTip

"다중 대상 패턴"Makefile 오류

bestdevel 2020. 11. 2. 08:10
반응형

"다중 대상 패턴"Makefile 오류


내 makefile이 오류와 함께 실패합니다.

Makefile:34: *** multiple target patterns.  Stop.

어떤 의미의 바는 무엇이며 어떻게하는 수 있습니까?

( Captain Obvious는 GNU 가 설명서를 만들지 않습니다.)


그것을 발견. 나는 형태로 규칙이 있었다 :

$(FOO): bar

FOO콜론을 포함하는 오류 메시지로 오염시킨 쉘 명령에서 위치 .


Makefile에 있었어요

MAPS+=reverse/db.901:550:2001.ip6.arpa 
lastserial:  ${MAPS}
    ./updateser ${MAPS}

:파일 이름 때문입니다 . 나는 주인

                      -------- 공지
                     / /
                    vv
MAPS + = 역방향 / db.901 \ : 550 \ : 2001.ip6.arpa
lastserial : $ {MAPS}
    ./updateser $ {MAPS}

원래 답변에서와 같이 콜론을 이스케이프해야하는 것 외에 들여 쓰기가 해제되었습니다. 한 메이크 파일에서 공백을 탭으로 바꿔야 그 결과 오류를 불량 할 수 있습니다.


Cygwin은 자동 생성 파일을 사용하고 있기 때문에 오류가 발생하면 다음과 같은 상황이 발생합니다.

sed -e 's@\\\([^ ]\)@/\1@g' -e 's@[cC]:@/cygdrive/c@' -i filename.d

첫 번째 대체에서 이스케이프 목록에 공백 이상의 문자를 추가해야 할 수도 있습니다. 여기서 개념은 / cygdrive / c가 c의라는 것입니다. cygwin의 make가 인식 할 것입니다.

그리고 던질 수 있습니다.

-e 's@^ \+@\t@'

(나는 / 생각합니다 / 이것은 일반적으로 "구분자 누락"오류).


나는 같은 오류를 만났다. 고생 한 끝에 폴더 이름의 "공백"때문이라는 것을 알았습니다.

예 :

이전에 내 폴더 이름은 "Qt Projects" 였습니다.

나중에 "QtProjects"로 변경했습니다.

내 문제가 해결되었습니다.

매우 간단하지만 중요한 문제입니다.


-nGREP_OPTIONS환경 변수 있었기 때문에이 문제 (대상 이름의 콜론)가 많은 . 분명히 이로 인해 잘못 configure생성되었습니다 Makefile.

참고 URL : https://stackoverflow.com/questions/2100448/multiple-target-patterns-makefile-error

반응형