Makefile 초기 탐색 3 - 변수의 할당 연산 자

1621 단어
(1) = 가장 간단 한 할당
= 할당 변 수 를 사용 합 니 다. 분 석 될 때 그의 값 은 마지막 할당 시의 값 에 달 려 있 습 니 다. 따라서 변수 가 인용 한 값 을 볼 때 앞 만 볼 수 없고 뒤 를 봐 야 합 니 다.
메모: Makefile 에 서 는 할당 연산 자 양쪽 에 빈 칸 이나 빈 칸 이 있어 야 한 다 는 것 을 요구 하지 않 습 니 다. 이 점 은 셸 의 형식 요구 보다 느슨 합 니 다.
  1 A=abc
  2 B=$(A)def
  3 A=gh
  4 
  5 all:
  6     echo $B

출력:
exbot@ubuntu:~/liyijun$ make all
echo ghdef
ghdef

(2): = 일반적으로 도 할당
사용: = 값 을 부여 하 는 것 은 현지에서 직접 해석 하고 앞 만 보면 됩 니 다.
  1 A=abc
  2 B:=$(A)def
  3 A=gh
  4 
  5 all:
  6     echo $B

출력:
exbot@ubuntu:~/liyijun$ make all
echo abcdef
abcdef

해석 하 는 사람 은 다음 과 같다. 혹은    A 는 = 이지 만 B 는: = 이 므 로: = 에 따라 집행 한다.
(3)?=
변수 가 할당 되 지 않 았 다 면 이 할당 을 실행 합 니 다. 앞 에 할당 되 어 있 으 면 이 줄 은 무 시 됩 니 다.(실험 을 통 해 알 수 있 듯 이 할당 되 지 않 은 것 은 바로 이 변수 가 정의 되 지 않 은 것 이다)
실례 1:
  1 var=abcd
  2 var?=ef
  3 
  4 all:
  5     echo $(var)

출력:
abcd
 실례 2:
  1 
  2 var?=ef
  3 var=abcd
  4 all:
  5     echo $(var)

출력:
abcd
 실례 3:
  2 var?=ef
  3 var=
  4 all:
  5     echo $(var)

출력 이 비어 있 으 니 빈 값 도 할당 한 셈 입 니 다.
(4)+=  
이미 할당 한 변 수 를 연결 하 는 데 사용 합 니 다. 이 값 을 원래 값 뒤에 추가 하 는 것 은 strcat 와 유사 하 다 는 뜻 입 니 다.(셸 Makefile 등 파일 에서 모든 변 수 는 문자열 이 라 고 볼 수 있 습 니 다. + = 문자열 stcat 에 연결 하 는 내용 과 같 습 니 다) (디 테 일 을 주의 하 십시오. + = 연결 하 는 내용 과 원래 내용 사이 에 자동 으로 빈 칸 을 추가 합 니 다)
실례:
  1 var=ab
  2 var+=cd
  3 all:
  4     echo $(var)
  5 var+=ef

출력:
ab cd ef
 
 
REF:
주 선생님 강의

좋은 웹페이지 즐겨찾기