컴파일러 및 링커 옵션(C++/CX)

환경 변수, C++/CX 컴파일러 옵션 및 링커 옵션은 Windows 런타임 대한 앱 빌드를 지원합니다.

라이브러리 경로

%LIBPATH% 환경 변수는 .winmd 파일을 검색할 기본 경로를 지정합니다.

컴파일러 옵션

옵션 설명
/ZW

/ZW:nostdlib
Windows 런타임 언어 확장을 사용하도록 설정합니다.

nostdlib 매개 변수를 사용하면 컴파일러에서 미리 정의된 표준 검색 경로를 사용하여 어셈블리 및 .winmd 파일을 찾지 못합니다.

/ZW 컴파일러 옵션은 다음 컴파일러 옵션을 암시적으로 지정합니다.

- /FI vccorlib.h - 컴파일러에 필요한 다양한 형식을 정의하는 vccorlib.h 헤더 파일을 강제로 포함합니다.
- /FU Windows.winmd- 운영 체제에서 제공하고 Windows 런타임 여러 형식을 정의하는 Windows.winmd 메타데이터 파일을 강제로 포함합니다.
- /FU Platform.winmd - 네임스페이스의 Platform 패밀리에서 대부분 형식을 정의하고 컴파일러에서 제공되는 Platform.winmd 메타데이터 파일을 강제로 포함합니다.
/AIdir dir 매개 변수로 지정되는 디렉터리를 컴파일러에서 어셈블리 및 .winmd 파일을 찾는 데 사용하는 검색 경로에 추가합니다.
/FU파일 지정된 모듈 또는 .winmd 파일을 강제로 포함합니다. 즉, 소스 코드에서 #usingfile 을 지정할 필요가 없습니다. 컴파일러에서는 고유한 Windows 메타데이터 파일, Platform.winmd를 자동으로 강제 포함합니다.
/D "WINAPI_FAMILY=2" Windows 런타임 호환되는 Win32 SDK의 하위 집합을 사용할 수 있도록 하는 정의를 만듭니다.

링커 옵션

옵션 설명
/APPCONTAINER[:NO] 실행 파일을 appcontainer에서(만) 실행 가능으로 표시합니다.
/WINMD[:{NO|ONLY}] .winmd 파일 및 연결된 이진 파일을 내보냅니다. .winmd를 내보내려면 이 옵션을 링커에 전달해야 합니다.

NO—.winmd 파일을 내보내지 않지만 이진 파일을 내보냅니다.

ONLY—.winmd 파일을 내보내지만 이진 파일을 내보내지 않습니다.
/WINMDFILE:filename 기본 .winmd 파일 이름 대신 내보낼 .winmd 파일의 이름입니다. 명령줄에서 여러 파일 이름을 지정하면 마지막 이름이 사용됩니다.
/WINMDDELAYSIGN[:NO] .winmd 파일에 부분적으로 서명하고 공개 키를 이진 파일에 삽입합니다.

NO—(기본값) .winmd 파일에 서명하지 않습니다.

/WINMDKEYFILE 또는 /WINMDKEYCONTAINER도 지정하지 않으면 /WINMDDELAYSIGN은 아무런 효과가 없습니다.
/WINMDKEYCONTAINER:name 어셈블리에 서명할 키 컨테이너를 지정합니다. name 매개 변수는 메타데이터 파일에 서명하는 데 사용되는 키 컨테이너에 해당합니다.
/WINMDKEYFILE:filename 어셈블리에 서명할 키 또는 키 쌍을 지정합니다. filename 매개 변수는 메타데이터 파일에 서명하는 데 사용되는 키에 해당합니다.

설명

/ZW를 사용하면 컴파일러는 CRT(C 런타임)의 DLL 버전에 자동으로 연결됩니다. 정적 라이브러리 버전에 연결할 수 없으며, 유니버설 Windows 플랫폼 앱에서 허용되지 않는 CRT 함수를 사용하면 컴파일 시간 오류가 발생합니다.

참고 항목

앱 및 라이브러리 빌드