다음을 통해 공유


컴파일러 및 링커 옵션(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 메타데이터 파일을 강제로 포함합니다.
/AI dir dir 매개 변수로 지정되는 디렉터리를 컴파일러에서 어셈블리 및 .winmd 파일을 찾는 데 사용하는 검색 경로에 추가합니다.
/FU file 지정된 모듈 또는 .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 함수를 사용하면 컴파일 시간 오류가 발생합니다.

참고 항목

앱 및 라이브러리 빌드