다음을 통해 공유


특수 NMAKE 매크로

NMAKE는 다양한 파일 이름 및 명령을 나타내는 몇 가지 특수 매크로를 제공합니다. 이러한 매크로 중 일부에 대한 한 가지 사용은 미리 정의된 유추 규칙에 있습니다. 모든 매크로와 마찬가지로 NMAKE에서 제공하는 매크로는 대/소문자를 구분합니다.

파일 이름 매크로

파일 이름 매크로는 종속성에 지정된 파일 이름으로 미리 정의됩니다(디스크의 전체 파일 이름 사양이 아님). 이러한 매크로는 호출될 때 괄호로 오cl스딩할 필요가 없으며 표시된 대로만 $ 지정합니다.

Macro 의미
$@ 현재 지정된 대로 현재 대상의 전체 이름(경로, 기본 이름, 확장명)입니다.
$$@ 현재 지정된 대로 현재 대상의 전체 이름(경로, 기본 이름, 확장명)입니다. 종속성에 종속된 것으로만 유효합니다.
$* 현재 대상의 경로 및 기본 이름에서 파일 확장명을 뺀 값입니다.
$** 현재 대상의 모든 종속성입니다.
$? 현재 대상보다 이후 타임스탬프가 있는 모든 종속
$< 현재 대상보다 이후 타임스탬프가 있는 종속 파일입니다. 유추 규칙의 명령에서만 유효합니다.

미리 정의된 파일 이름 매크로의 일부를 지정하려면 매크로 한정자를cl추가하고 수정된 매크로를 괄호로 지정합니다.

한정자 결과 파일 이름 부분
D 드라이브 및 디렉터리
B 기본 이름
F 기본 이름 및 확장
R 드라이브와 디렉터리 및 기본 이름

재귀 매크로

재귀 매크로를 사용하여 NMAKE를 재귀적으로 호출합니다. 재귀 세션은 명령줄 및 환경 변수 매크로 및 Tools.ini 정보를 상속합니다. 메이크파일 정의 유추 규칙 또는 .SUFFIXES.PRECIOUS 사양을 상속하지 않습니다. 재귀 NMAKE 세션에 매크로를 전달하는 세 가지 방법이 있습니다.

  • 재귀 호출 전에 명령을 사용하여 SET 환경 변수를 설정합니다.
  • 재귀 호출에 대한 명령에서 매크로를 정의합니다.
  • 또는 .에서 매크로를 정의합니다 Tools.ini.
Macro 정의
MAKE 원래 NMAKE를 호출하는 데 사용된 명령입니다.

매크로는 $(MAKE) 전체 경로를 nmake.exe제공합니다.
MAKEDIR NMAKE가 호출되었을 때의 현재 디렉터리입니다.
MAKEFLAGS 현재 적용 중인 옵션입니다. 로 /$(MAKEFLAGS)사용합니다. 옵션이 /F uded로cl표시되지 않습니다.

명령 매크로 및 옵션 매크로

명령 매크로는 Microsoft 제품에 대해 미리 정의됩니다. 옵션 매크로는 이러한 제품에 대한 옵션을 나타내며 기본적으로 정의되지 않습니다. 둘 다 미리 정의된 유추 규칙에 사용되며 설명 블록 또는 사용자 정의 유추 규칙에 사용할 수 있습니다. 명령 매크로는 uding 옵션에서cl명령줄의 일부 또는 전체를 나타내도록 다시 정의할 수 있습니다. 옵션 매크로는 정의되지 않은 상태로 두면 null 문자열을 생성합니다.

도구 명령 매크로 다음으로 정의됨 옵션 매크로
매크로 어셈블러 AS ml 또는 ml64 AFLAGS
C 컴파일러 CC cl CFLAGS
C++ 컴파일러 CPP cl CPPFLAGS
C++ 컴파일러 CXX cl CXXFLAGS
Resource 컴파일러 RC rc RFLAGS

환경 변수 매크로

NMAKE는 세션이 시작되기 전에 존재하는 환경 변수에 대한 매크로 정의를 상속합니다. 운영 체제 환경에서 변수를 설정한 경우 NMAKE 매크로로 사용할 수 있습니다. 상속된 이름은 uppercase로 변환됩니다. 상속은 전처리 전에 발생합니다. 환경 변수에서 상속된 매크로가 메이크파일에서 이름이 같은 매크로를 재정의하도록 하려면 /E 옵션을 사용합니다.

세션에서 환경 변수 매크로를 다시 정의할 수 있으며, 그러면 해당 환경 변수가 변경됩니다. SET 명령을 사용하여 환경 변수를 변경할 수도 있습니다. 그러나 SET 명령을 사용하여 세션에서 환경 변수를 변경해도 해당 매크로는 변경되지 않습니다.

예시:

PATH=$(PATH);\nonesuch

all:
    echo %%PATH%%

이 예제에서 변경하면 PATH 해당 환경 변수 PATH가 변경되며 경로에 추가됩니다 \nonesuch .

환경 변수가 메이크파일에서 구문상 올바르지 않은 문자열로 정의되면 매크로가 생성되지 않고 경고가 생성되지 않습니다. 변수의 값에 달러 기호($)가 포함된 경우 NMAKE는 이를 매크로 호출의 시작 부분으로 해석합니다. 매크로를 사용하면 예기치 않은 동작이 발생할 수 있습니다.

참고 항목

매크로와 NMake