![gnu make: ":=$(표현식)" 대 ":=@(표현식)"](https://linux55.com/image/66635/gnu%20make%3A%20%22%3A%3D%24(%ED%91%9C%ED%98%84%EC%8B%9D)%22%20%EB%8C%80%20%22%3A%3D%40(%ED%91%9C%ED%98%84%EC%8B%9D)%22.png)
표현식 평가 중에 "$"와 "@" 사용의 차이점을 확인하려고 합니다(올바른 용어인 경우). 예를 들어 Makefile에서 다음 표현식을 이해하려고 합니다.
NO-DEBUG := @(if $(DEBUG),,1)
나중에 다음과 같은 표현이 나왔습니다.
NO-CHECKED := $(if $(CHECKED),,1)
이것들은 같은 일을 하는 것 같지만 "$"와 "@"가 평가에 어떤 영향을 미칠지는 잘 모르겠습니다. ":=@" 또는 "=@"에 대한 대략적인 Google 검색에서는 아무것도 찾을 수 없습니다. 어떤 통찰력이 있습니까? 왜 다른 것을 사용합니까?
감사합니다, 마크
답변1
@(expression)
나는 GNU make에서 그것을 본 적이 없고 그것에 대해서도 모릅니다. 만약 사용된다면, 단순히 해석되지 않은 채로 남게 될 것입니다. GNU make 4.0을 이용한 테스트를 통해 이를 확인했습니다. 거기에는 언급이 없는 것 같은데수동.
=
및 에 관해서 :=
는 읽어야 합니다.변수의 두 가지 스타일참조 매뉴얼에 있습니다. 자세한 설명과 예시가 있습니다.