GNU make manual 번역
5001 단어 Make
4.10 Multiple Targets in a Rule
===============================
A rule with multiple targets is equivalent to writing many rules, each
with one target, and all identical aside from that. The same recipe
applies to all the targets, but its effect may vary because you can
substitute the actual target name into the recipe using `$@'. The rule
contributes the same prerequisites to all the targets also.
This is useful in two cases.
* You want just prerequisites, no recipe. For example:
kbd.o command.o files.o: command.h
gives an additional prerequisite to each of the three object files
mentioned.
* Similar recipes work for all the targets. The recipes do not need
to be absolutely identical, since the automatic variable `$@' can
be used to substitute the particular target to be remade into the
commands (*note Automatic Variables::). For example:
bigoutput littleoutput : text.g
generate text.g -$(subst output,,$@) > $@
is equivalent to
bigoutput : text.g
generate text.g -big > bigoutput
littleoutput : text.g
generate text.g -little > littleoutput
Here we assume the hypothetical program `generate' makes two types
of output, one if given `-big' and one if given `-little'. *Note
Functions for String Substitution and Analysis: Text Functions,
for an explanation of the `subst' function.
Suppose you would like to vary the prerequisites according to the
target, much as the variable `$@' allows you to vary the recipe. You
cannot do this with multiple targets in an ordinary rule, but you can
do it with a "static pattern rule". *Note Static Pattern Rules: Static
Pattern.
4.10 규칙의 여러 목적 ==============================
여러 개의 규칙을 쓰고 각 규칙이 하나의 목적을 가진 방법과 비교하면 여러 개의 목적을 가진 규칙이 더욱 편리하다.같은 부분은 모든 목적에 작용하지만, 그 작용 범위는 변화할 수 있다. 왜냐하면 세션에서 $@를 통해 세기의 목적 이름을 바꿀 수 있기 때문이다.규칙도 같은 전제조건을 모든 목적에 작용시킬 수 있다.
이것은 두 가지 상황에서 유용하다.
*당신은 전제조건만 필요하고 단편은 필요하지 않습니다.예:
kdo.o command.o files.o: command.h
이 세 개의 목표 파일에 대해 별도의 전제 조건을 제시했다.
* 모든 목적을 위해 작업하는 동일한 부분입니다.세션은 절대 고유할 필요가 없습니다. 자동 변수 $@ 는 특정한 목적을 대체하여 명령을 다시 설정할 수 있기 때문입니다(*note Automatic Variables::).
bigoutput littleoutput : text.g generate text.g -$(subst output,, $@) > $@ 등가:
bigoutput : text.g generate text.g -big > bigoutput
littleoutput : text.g generate text.g -little > littleoutput
이 책에서 우리는 가상의 프로그램generate가 두 가지 유형의 출력을 생성한다고 가정한다. 하나는 빅 옵션을 제시할 때이고, 하나는 리틀 옵션을 제시할 때이다.*Note Functions for String Substitution and Analysis: Text Functions에서subst 함수에 대한 설명을 참조할 수 있습니다.
네가 목적을 위해 전제조건을 바꿀 것이라고 생각해 봐라.$@ 변수로 세션을 변경하는 것처럼;너는 일반적인 여러 가지 목적을 가진 규칙에서는 달성할 수 없지만, 정적 패턴 규칙으로 이 점을 할 수 있다. *Note Static Pattern Rules: Static Pattern.
후문이 계속되다
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Windows용 GNU Make에서 PowerShell을 사용하는 방법Windows용 GNU Make를 설치하고 기본 설정으로 실행하면 쉘이 명령 프롬프트(cmd.exe)로 실행됩니다. 어떻게 해서 Windows PowerShell (powershell.exe)로 변경할 수 없는지 조...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.