Share via


$(Inherit) 및 $(NoInherit) 사용

업데이트: 2007년 11월

여기에서는 $(Inherit)$(NoInherit) 매크로의 사용 방법에 대한 몇 가지 예제를 보여 줍니다.

  • 프로젝트 수준에서 다음의 추가 포함 경로(/I)를 설정합니다.

    c:\test
    
  • 특정 파일에 대해 다음의 추가 포함 경로를 설정합니다.

    c:\test2;c:\mystuff
    
  • 해당 파일의 명령줄 속성 페이지를 확인합니다. 이 페이지에는 다음 내용이 포함되어 있습니다.

    /I"c:\test2" /I"c:\mystuff" /I"c:\test"
    

    이것은 목록에 $(Inherit)가 명시적으로 포함되지 않은 경우 파일 구성의 추가 포함 경로 끝에 암시적인 $(Inherit)가 있기 때문입니다.

  • 그러나 이 파일 구성의 추가 포함 경로를 다음과 같이 바꾸면

    c:\test2;$(Inherit);c:\mystuff
    

    해당 파일의 명령줄 속성 페이지에서 다음과 같이 확장됩니다.

    /I"c:\test2" /I"c:\test" /I"c:\mystuff"
    

    프로젝트 구성에서 추가 포함 경로는 $(Inherit) 매크로가 놓여진 위치입니다. $(Inherit) 매크로는 이 속성의 일부인 상속된 값의 위치를 나타내는 데 사용됩니다. 이 매크로는 목록의 어느 위치에나 사용할 수 있습니다.

  • 이 파일 구성의 추가 포함 경로를 다음과 같이 바꾸면

    $(Inherit);c:\test2;$(Inherit);c:\mystuff
    

    해당 파일의 명령줄 속성 페이지에서 다음과 같이 확장됩니다.

    /I"c:\test" /I"c:\test2" /I"c:\test" /I"c:\mystuff"
    
  • 이 파일 구성의 추가 포함 경로를 다음과 같이 바꾸면

    c:\test2;c:\mystuff;$(NoInherit)
    

    해당 파일의 명령줄 속성 페이지에서 다음과 같이 확장됩니다.

    /I"c:\test2" /I"c:\mystuff"
    

    이 때 프로젝트 구성의 /I"c:\test"는 사라집니다. 위치가 중요한 $(Inherit)와 달리 $(NoInherit) 매크로의 위치는 매크로 사용 방법과 관계가 없습니다.

$(NoInherit)는 $(Inherit)보다 우선합니다. 즉, $(NoInherit)가 있으면 $(Inherit)는 무시됩니다. 예를 들어, 파일 구성의 추가 포함 경로를 다음과 같이 바꾸면

c:\test2;$(Inherit);c:\mystuff;$(NoInherit)

경로가 이전과 동일한 상태로 확장됩니다.

c:\test2;c:\mystuff;$(NoInherit)

C/C++ 컴파일러나 링커 등의 도구에 대한 Defines 속성에서 $(NoInherit)를 사용할 때는 주의해야 합니다. ATL 사용 및 MFC 사용 등으로 설정된 프로젝트 기본값의 사용이 취소될 수 있기 때문입니다.

참고 항목

기타 리소스

빌드 명령 및 속성 매크로