반응형
ifeq에 대한 오류 만들기 : 예기치 않은 토큰 근처의 구문 오류
한 곳에서 문자열 일치를 수행하는 Makefile을 작성하고 있습니다. 코드는 다음과 같습니다.
if test ...; \
then \
shell scripts... \
fi
ifeq ($(DIST_TYPE),nightly)
shell scripts ...
endif
첫 번째 if
는 쉘 스크립트이고 두 번째 ifeq
는 GNU Make의 조건부입니다. 그러나 다음 오류가 생성됩니다.
ifeq (야간, 야간)
/ bin / sh : -c : 줄 0 : 예기치 않은 토큰`nightly, nightly '근처의 구문 오류
/ bin / sh : -c : 줄 0 :`ifeq (야간, 야간) '
여기서 무슨 일이 일어나고 있습니까? Make가 셸을 호출하려는 것 같습니다.
감사합니다.
나는 코드를 가지고 놀았고 조건문이 들여 쓰기없이 작성되어야한다는 것을 발견했고 이것이 내 문제를 해결했다.
들여 쓰기가 없으면 Make는이를 지시어로 취급합니다. 그렇지 않으면 쉘 스크립트로 간주됩니다.
예제 코드
잘못된:
target:
ifeq (foo, bar)
...
endif
옳은:
target:
ifeq (foo, bar)
...
endif
또한 조건문이 다음과 같은 정의 함수에 사용되는 경우
define myFunc
ifeq (foo, bar)
...
endif
endef
이 경우 Make는이를 쉘 스크립트로 취급합니다.
이 문제는 대신 if 함수를 사용하여 해결할 수 있습니다.
define myFunc
$(if condition,then-part[,else-part])
endef
참고 URL : https://stackoverflow.com/questions/4483313/make-error-for-ifeq-syntax-error-near-unexpected-token
반응형
'Programing' 카테고리의 다른 글
터치 할 때 MKMapView (IOS)에 푸시 핀을 추가하는 방법은 무엇입니까? (0) | 2020.12.06 |
---|---|
생산성을 향상시키는 최고의 무료 소프트웨어 제품은 무엇입니까? (0) | 2020.12.06 |
Laravel 4 홈을 제외한 모든 경로에서 404 오류 발생 (0) | 2020.12.06 |
정수를 로마 숫자로 변환-Java (0) | 2020.12.06 |
예외 : AAPT2 오류 : 자세한 내용은 로그 확인 (0) | 2020.12.06 |