Makefile의 내부 매크로 노트
$<
나 $@
의 내부 매크로/자동 변수를 자주 잊어버리기 때문이다.웅대하다
설명
$@
대상 이름
$%
대상 구성원 이름입니다.아카이브 업데이트 등에 사용
$<
파일의 시작에 의존하는 파일 이름입니다.
$?
대상의 새 의존 파일의 파일 이름 사이에 공백을 띄워 배열합니다
$^
모든 종속 파일의 파일 이름 사이에 공백을 끼고 배열합니다.
$+
몰라.
$^
와의 차이점은 Makefile에 기술된 순서대로 배열되는지 여부입니다.$*
기본 규칙에서 일치하는 어간.
a.%.b
중 일치한 것은 baa/a.do.b
시baa/do
였다.주로 %.c
등에 쓰인다.확인
실제로 어떤 값이 어디에 있는지 잘 모르기 때문에 확인용 메이크파일을 만들어 실행해 결과를 봤다.
hage_1 :
-echo '$@ is ' $@
-echo '$% is ' $%
-echo '$< is ' $<
-echo '$? is ' $?
-echo '$^ is ' $^
-echo '$+ is ' $+
hage_2 : hage1
-echo '$@ is ' $@
-echo '$% is ' $%
-echo '$< is ' $<
-echo '$? is ' $?
-echo '$^ is ' $^
-echo '$+ is ' $+
hage_3 : hage3 hage2 hage1
-echo '$@ is ' $@
-echo '$% is ' $%
-echo '$< is ' $<
-echo '$? is ' $?
-echo '$^ is ' $^
-echo '$+ is ' $+
결실
⚓ ~/t/MM touch hage{1,2,3}
⚓ ~/t/MM make hage_1
echo '$@ is ' hage_1
$@ is hage_1
echo '$% is '
$% is
echo '$< is '
$< is
echo '$? is '
$? is
echo '$^ is '
$^ is
echo '$+ is '
$+ is
⚓ ~/t/MM make hage_2
echo '$@ is ' hage_2
$@ is hage_2
echo '$% is '
$% is
echo '$< is ' hage1
$< is hage1
echo '$? is ' hage1
$? is hage1
echo '$^ is ' hage1
$^ is hage1
echo '$+ is ' hage1
$+ is hage1
⚓ ~/t/MM make hage_3
echo '$@ is ' hage_3
$@ is hage_3
echo '$% is '
$% is
echo '$< is ' hage3
$< is hage3
echo '$? is ' hage3 hage2 hage1
$? is hage3 hage2 hage1
echo '$^ is ' hage3 hage2 hage1
$^ is hage3 hage2 hage1
echo '$+ is ' hage3 hage2 hage1
$+ is hage3 hage2 hage1
참고 자료
Reference
이 문제에 관하여(Makefile의 내부 매크로 노트), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/at_yasu/articles/dc57c22a14fc41f6d6ac텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)