다음 속성 페이지는 프로젝트>속성>구성 속성>C/C++에서 찾을 수 있습니다.
C/C++ 일반 속성
추가 포함 디렉터리
포함 경로에 추가할 하나 이상의 디렉터리를 지정합니다. 둘 이상의 디렉터리를 세미콜론(;)으로 구분합니다.
/I (추가 포함 디렉터리) 컴파일 옵션을 설정합니다.
추가 #using 디렉터리
지시문에 전달된 #using 이름을 확인하기 위해 검색할 디렉터리를 하나 이상 지정합니다. 둘 이상을 추가하는 경우 세미콜론(;)을 사용하여 디렉터리를 구분합니다.
/AI 컴파일러 옵션을 설정합니다.
추가 BMI 디렉터리
지시문에 전달된 이름을 확인하기 위해 검색할 import 디렉터리를 하나 이상 지정합니다. 둘 이상을 추가하는 경우 세미콜론(;)을 사용하여 디렉터리를 구분합니다.
/ifcSearchDir[path] 컴파일러 옵션을 설정합니다.
추가 모듈 종속성
import 지시문에 전달된 이름을 해결하기 위해 사용할 하나 이상의 모듈을 지정합니다. 둘 이상을 추가하는 경우 세미콜론(;)을 사용하여 디렉터리를 구분합니다.
/reference 컴파일러 옵션을 설정합니다.
추가 헤더 단위 종속성
헤더 지시문에 전달된 이름을 확인하는 데 사용할 하나 이상의 헤더 단위를 import 지정합니다. 둘 이상을 추가하는 경우 세미콜론(;)을 사용하여 디렉터리를 구분합니다.
/headerUnit 컴파일러 옵션을 설정합니다.
모듈 종속성을 위한 소스 검사
이 속성을 Yes로 설정하면 컴파일러는 모듈 인터페이스 및 헤더 단위 원본뿐만 아니라 모든 C++ 원본에서 모듈 및 헤더 단위 종속성을 검색합니다. 빌드 시스템은 전체 종속성 그래프를 빌드하여 가져온 모든 모듈 및 헤더 단위가 종속된 파일을 컴파일하기 전에 빌드되도록 합니다.
모듈 종속성을 위해 소스 검색과 포함을 가져오기로 변환이 모두 예로 설정되면 헤더 파일과 같은 디렉터리에 있는 header-units.json 파일에 지정된 모든 헤더 파일이 헤더 단위로 컴파일됩니다.
확장명이 .ixx인 파일과 파일 속성의 File properties>C/C++>Advanced>Compile As 속성이 C++ 헤더 단위로 컴파일(/exportHeader)로 설정된 파일은 항상 검색됩니다.
확장.ixx명이 있는 파일과 파일 속성>C/C++>Compile As 속성이 C++ 헤더 유닛으로 컴파일 (/exportHeader)로 설정된 파일은 항상 검색됩니다.
포함을 가져오기로 번역
이 속성을 Yes로 설정하면 다음 조건이 충족될 경우 컴파일러는 import 지시문을 #include 지시문으로 처리합니다. 헤더 파일이 동일한 디렉터리에 있는 header-units.json 파일에 지정되어 있고, 해당 헤더 파일에 대해 컴파일된 헤더 단위(.ifc 파일)를 사용할 수 있어야 합니다. 그렇지 않으면 헤더 파일이 일반 #include파일로 처리됩니다. 이 header-units.json 파일은 기호 중복 없이 각각 #include 에 대한 헤더 단위를 빌드하는 데 사용됩니다.
Includes를 Imports로 변환과 모듈 종속성에 대해 소스 검색이 모두 예로 설정되면 컴파일러는 헤더 단위로 컴파일할 수 있는 모든 헤더 파일을 자동으로 찾습니다. 이 속성은 /translateInclude 컴파일러 옵션을 설정합니다.
디버그 정보 형식
컴파일러에서 생성되는 디버깅 정보 형식을 지정합니다. 이 속성에는 호환되는 링커 설정이 필요합니다.
컴파일러 옵션 /Z7, /Zi, /ZI (디버그 정보 형식)을 설정합니다.
선택
-
없음 (
None) - 디버깅 정보를 생성하지 않으므로 컴파일 속도가 더 빠를 수 있습니다. -
C7 호환 (
OldStyle) - 전체 심볼 디버깅 정보를 포함하는 개체 파일을 생성합니다. PDB 파일이 생성되지 않습니다. -
Program Database (
ProgramDatabase) - 디버거와 함께 사용할 형식 정보 및 기호 디버깅 정보가 포함된 프로그램 데이터베이스(PDB)를 생성합니다. 기호 디버깅 정보에는 변수 및 함수의 이름과 형식, 줄 번호가 포함됩니다. -
편집하며 계속하기 위한 프로그램 데이터베이스 (
EditAndContinue) - 이전에 설명한 대로 편집하며 계속 하기 기능을 지원하는 형식으로 프로그램 데이터베이스를 생성합니다.
내 코드 디버깅만 지원
이 컴파일 단위에서 '내 코드'만 디버깅하는 기능을 활성화하는 지원 코드를 추가합니다.
/JMC을 설정합니다.
C++ 동적 디버깅 지원
(미리 보기) /dynamicdeopt을 설정하도록 컴파일러 플래그 를 설정합니다. 비최적화된 중단점을 배치하고 주문형 함수 비최적화를 통해 어디서나 단계별로 실행합니다. 최적화된 코드를 디버깅하는 데 이 모드를 사용합니다.
공용 언어 런타임 지원
.NET 런타임 서비스를 사용합니다. 이 스위치는 다른 스위치와 호환되지 않습니다. 자세한 내용은 스위치 제품군에 /clr 대한 설명서를 참조하세요.
선택
- 공용 언어 런타임 지원 없음 - 공용 언어 런타임 지원이 없습니다.
- 공용 언어 런타임 지원 - 다른 CLR 애플리케이션에서 사용할 수 있는 애플리케이션에 대한 메타데이터를 만듭니다. 또한 애플리케이션에서 다른 CLR 구성 요소의 메타데이터에서 형식 및 데이터를 사용할 수 있습니다.
- 순수 MSIL 공용 언어 런타임 지원 - MSIL로 컴파일된 네이티브 형식을 포함할 수 있지만 네이티브 실행 코드가 없는 MSIL 전용 출력 파일을 생성합니다.
- 안전한 MSIL 공용 언어 런타임 지원 - MSIL 전용(네이티브 실행 코드 없음) 및 확인 가능한 출력 파일을 생성합니다.
Windows 런타임 확장 사용
Windows 런타임 언어 확장을 사용합니다.
/ZW을 설정합니다.
시작 배너 표시 억제
컴파일러가 시작될 때 로그온 배너의 표시를 표시하지 않고 컴파일하는 동안 정보 메시지를 표시하지 않습니다.
경고 수준
컴파일러가 코드 오류에 대해 얼마나 엄격할지 선택합니다.
/W0 - /W4을 설정합니다.
선택
- 모든 경고 끄기 - 수준 0은 모든 경고를 사용하지 않도록 설정합니다.
- Level1 - 수준 1은 심각한 경고를 표시합니다. 수준 1은 명령줄의 기본 경고 수준입니다.
- 수준 2 - 수준 2는 수준 1보다 덜 심각한 모든 수준 1 경고 및 경고를 표시합니다.
- 수준 3 - 수준 3은 모든 수준 2 경고와 프로덕션 용도로 권장되는 다른 모든 경고를 표시합니다.
- 수준 4 - 수준 4에는 모든 수준 3 경고 및 정보 경고가 표시되며, 대부분의 경우 안전하게 무시될 수 있습니다.
- EnableAllWarnings - 기본적으로 사용하지 않도록 설정된 경고를 포함하여 모든 경고를 사용하도록 설정합니다.
경고를 오류로 처리
컴파일러 경고를 오류로 처리합니다. 새 프로젝트의 경우 모든 컴파일에서 사용하는 /WX 것이 가장 좋습니다. 찾기 어려운 코드 결함을 최소화하려면 모든 경고를 해결합니다.
경고 버전
컴파일러의 특정 버전 이후에 도입된 경고를 숨깁니다.
/Wv:xx[.yy[.zzzzz]]을 설정합니다.
진단 형식
진단 메시지의 열 정보 및 원본 컨텍스트를 사용하여 풍부한 진단을 사용하도록 설정합니다.
선택
- Caret - 진단 메시지에 열 정보를 제공합니다. 또한 문제가 되는 열을 가리키는 캐럿(^)과 함께 해당 소스 코드 줄도 출력합니다.
- 열 정보 - 또한 진단이 발급되는 줄 내의 열 번호(해당하는 경우)를 제공합니다.
- 클래식 - 줄 번호를 사용하여 이전의 간결한 진단 메시지만 출력합니다.
SDL 검사
SDL(보안 개발 수명 주기)에서 권장하는 추가 검사 추가 보안 코드 생성 기능을 포함하며, 보안과 관련된 추가 경고를 오류로 처리합니다. 집합 /sdl, /sdl-.
다중 프로세서 컴파일
다중 프로세서 컴파일을 사용하도록 설정합니다.
/MP 컴파일러 옵션을 설정합니다.
주소 삭제기 사용
AddressSanitizer 계측을 사용하여 프로그램을 컴파일하고 연결합니다. 이 속성은 현재 x86 및 x64 대상 빌드를 지원합니다.
/fsanitize 컴파일러 옵션을 설정합니다.
퍼저 지원 사용(실험적)
Fuzzer를 사용하여 프로그램을 컴파일합니다. 최상의 결과를 위해 AddressSanitizer를 사용하도록 설정합니다. 현재 x86 및 x64 빌드에 사용할 수 있습니다.
/fsanitize=fuzzer을 설정합니다.
C/C++ 최적화 속성
최적화
코드 최적화 옵션을 선택합니다.
사용자 지정을 선택하여 특정 최적화 옵션을 사용합니다. Sets /Od, /O1, /O2.
선택
- 사용자 지정 - 사용자 지정 최적화입니다.
- 사용 안 함 - 최적화를 사용하지 않습니다.
-
최대 최적화(선호 크기) - 와 동일합니다
/Os /Oy /Ob2 /Gs /GF /Gy. -
최대 최적화(선호 속도) - 에 해당합니다
/Oi /Ot /Oy /Ob2 /Gs /GF /Gy. -
최적화(선호 속도) - 와 동일합니다
/Oi /Ot /Oy /Ob2.
인라인 함수 확장
빌드에 대한 인라인 함수 확장 수준을 선택합니다.
/Ob을 설정합니다.
선택
- 기본값
- 사용 안 함 - 기본적으로 설정되어 있는 인라인 확장을 사용하지 않도록 설정합니다.
-
__inline -
inline,__forceinline, 또는__inline로 표시된 함수만 확장합니다. 또는 C++ 멤버 함수에서 클래스 선언 내에 정의됩니다. -
적합한 함수 -
inline또는__inline로 표시된 함수 및 컴파일러가 선택하는 다른 모든 함수를 확장합니다. (확장은 컴파일러의 재량에 따라 발생합니다. 이 컴파일러에서 선택한 확장을 자동 인라인이라고도 합니다.)
내장 함수 사용
내장 함수를 사용하도록 설정합니다. 내장 함수를 사용하면 더 빠르지만 더 큰 코드가 생성됩니다.
/Oi을 설정합니다.
크기 또는 속도 선호
코드 크기 또는 코드 속도를 선호할지 여부입니다.
Global Optimization 를 설정해야 합니다. 집합 /Ot, /Os.
선택
- 작은 코드 선호 - 컴파일러에 속도보다 크기를 선호하도록 지시하여 EXE 및 DLL의 크기를 최소화합니다.
- 빠른 코드 선호 - 컴파일러에 크기보다 속도를 높이도록 지시하여 EXE 및 DLL의 속도를 최대화합니다. (최적화를 사용하는 경우 이 값은 기본값입니다.)
- 둘 다 - 크기 및 속도 최적화가 없습니다.
프레임 포인터 생략
호출 스택에서 프레임 포인터를 생성하지 않습니다.
파이버 안전 최적화 활성화
파이버를 사용하여 스레드 로컬 스토리지에 액세스하는 애플리케이션에 대해 파이버로부터 안전한 최적화를 사용하도록 설정합니다.
/GT을 설정합니다.
전체 프로그램 최적화
연결 시간을 위해 코드 생성을 지연시켜 모듈 간 최적화를 사용하도록 설정합니다. 링커 옵션 링크 시간 코드 생성이 필요합니다.
/GL을 설정합니다.
C/C++ 전처리기 속성
전처리기 정의
소스 파일에 대한 전처리 기호를 정의합니다.
전처리기 정의 해제
전처리기 정의 해제를 하나 이상 지정합니다.
/U을 설정합니다.
모든 전처리기 정의 해제
이전에 정의한 모든 전처리기 값을 정의 해제합니다.
/u을 설정합니다.
표준 포함 경로 무시
컴파일러가 INCLUDE 환경 변수에 지정된 디렉터리에 포함된 파일을 검색하지 못하도록 합니다.
파일로 전처리
C 및 C++ 원본 파일을 전처리하고 전처리된 출력을 파일에 씁니다. 이 옵션은 컴파일을 중단하고 .obj 파일을 생성하지 않습니다.
전처리 중 줄 번호 숨기기
#line 지시문 없이 전처리합니다.
메모 유지
파일 및 기타 전처리기 출력에서 .i C 및 C++ 원본 주석(// 및 /* ... */)을 유지하려면 이 옵션을 사용하도록 설정합니다. 전처리기는 기본적으로 주석을 제거합니다.
전처리 옵션 중 하나 이상을 설정해야 합니다.
/C을 설정합니다.
표준 준수 전처리기 사용
표준 준수 전처리기(/Zc:preprocessor)를 사용합니다. 현재는 /std:c11 및 이후 버전에 포함됩니다. 레거시 전처리기를 사용하려면 이 속성을 No로 설정합니다.
C/C++ 코드 생성 속성
문자열 풀링 사용
컴파일된 프로그램에서 동일한 문자열을 하나의 읽기 전용 복사본으로 결합하는 문자열 풀링을 사용하도록 설정하려면 이 속성을 사용합니다. 이로 인해 프로그램이 더 작아질 수 있습니다.
/O1, /O2 및 /ZI는 /GF 옵션을 자동으로 설정합니다.
최소 재구축 활성화
최소 다시 작성을 사용하도록 설정하여 변경된 C++ 클래스 정의를 포함하는 헤더(.h) 파일을 포함하는 C++ 원본 파일을 다시 컴파일할지 여부를 결정합니다.
C++ 예외 사용
컴파일러가 사용하는 예외 처리 모델을 지정합니다.
선택
-
예( SEH 예외 포함 ) - 비동기(구조적) 및 동기(C++) 예외를 catch하는 예외 처리 모델입니다.
/EHa을 설정합니다. -
예 - C++ 예외만 catch하고 함수가 C++ 예외를 throw하지 않는
extern "C"것으로 가정하도록 컴파일러를 구성하는 예외 처리 모델입니다./EHsc을 설정합니다. -
Extern C 함수를 사용하는 경우 예 - C++ 예외만 포착하고
extern "C"함수가 예외를 발생시킨다고 가정하도록 컴파일러를 구성하는 예외 처리 모델입니다./EHs을 설정합니다. - 아니요 - 예외 처리가 없습니다.
더 작은 형식 검사
더 작은 형식으로의 변환을 확인할 수 있습니다. 디버그 이외의 최적화 형식과 호환되지 않습니다.
/RTCc을 설정합니다.
기본 런타임 검사
기본 런타임 오류 검사를 사용하도록 설정합니다. 디버그 이외의 최적화 형식과 호환되지 않습니다. Sets/RTCs, /RTCu, /RTC1.
선택
- 스택 프레임 - 스택 프레임 런타임 오류 검사를 사용하도록 설정합니다.
- 초기화되지 않은 변수 - 변수를 초기화하지 않고 사용하는 경우를 보고합니다.
-
둘 다 (/RTC1, /RTCsu와 동일함) -
/RTCsu의 동일한 버전. - 기본값 - 기본 런타임 검사입니다.
런타임 라이브러리
연결에 대한 런타임 라이브러리를 지정합니다. 설정: /MT, /MD, /MTd, /MDd.
선택
- 다중 스레드 - 애플리케이션이 런타임 라이브러리의 다중 스레드 정적 버전을 사용하도록 합니다.
-
멀티스레드 디버그 -
_DEBUG및_MT를 정의합니다. 이 옵션을 사용하면 컴파일러가 라이브러리 이름LIBCMTD.lib를 파일에 넣어 링커가.obj를 사용하여 외부 기호를 확인할 수 있도록 합니다. -
다중 스레드 DLL - 애플리케이션이 런타임 라이브러리의 DLL 특정 다중 스레드 버전을 사용하도록 합니다. `
_MT및_DLL를 정의하고 컴파일러가 라이브러리 이름 MSVCRT.lib을.obj파일에 배치하도록 합니다.` -
다중 스레드 디버그 DLL - 애플리케이션이
_DEBUG_MT런타임 라이브러리의 디버그, DLL별 다중 스레드 버전을 정의하고_DLL사용하도록 합니다. 또한 컴파일러가 라이브러리 이름 MSVCRTD.lib를.obj파일에 넣도록 합니다.
구조체 멤버 정렬
구조체 멤버 맞춤에 대해 1, 2, 4, 8 또는 16 바이트 경계를 지정합니다.
/Zp을 설정합니다.
선택
-
1 바이트 - 1 바이트 경계에 구조를 압축합니다.
/Zp와 동일합니다. - 2바이트 - 구조를 2바이트 경계로 패킹합니다.
- 4바이트 - 구조체를 4바이트 경계로 맞춥니다.
- 8바이트 - 8바이트 경계(기본값)에 구조를 압축합니다.
- 16바이트 - 16바이트 경계에 구조를 압축합니다.
- 기본값 - 기본 맞춤 설정입니다.
구조체 멤버 맞춤에 대해 1, 2, 4 또는 8 바이트 경계를 지정합니다.
/Zp을 설정합니다.
선택
-
1 바이트 - 1 바이트 경계에 구조를 압축합니다.
/Zp와 동일합니다. - 2바이트 - 구조를 2바이트 경계로 패킹합니다.
- 4바이트 - 구조체를 4바이트 경계로 맞춥니다.
- 8바이트 - 8바이트 경계(기본값)에 구조를 압축합니다.
- 기본값 - 기본 맞춤 설정입니다.
보안 확인
공격자가 애플리케이션을 손상시키기 위해 악용할 수 있는 스택 버퍼 오버런을 검색하는 데 도움이 됩니다.
선택
제어 흐름 보호
잘못된 코드 블록으로 디스패치하려는 시도를 감지하는 데 도움이 됩니다.
선택
-
예 - Control Flow Guard를 사용하도록 설정합니다.
/guard:cf을 설정합니다. - 아니요
함수 수준 링크 사용
컴파일러가 개별 함수를 패키지된 함수(COMDAT)의 형태로 패키지할 수 있게 합니다. 편집에 필요하며 계속 작동합니다.
/Gy을 설정합니다.
병렬 코드 생성 활성화
최적화를 사용할 때 컴파일러가 식별된 #pragma loop(hint_parallel[(n)]) 루프에 대한 병렬 코드를 생성할 수 있도록 허용합니다.
향상된 명령 집합 사용
향상된 명령 집합을 지원하는 프로세서에서 찾은 지침을 사용하도록 설정합니다. 예를 들어 SSE, SSE2, AVX 및 AVX2가 IA-32로 향상되고 AVX 및 AVX2가 x64로 향상되었습니다.
/arch:SSE 는 x86 빌드에만 사용할 수 있습니다.
/arch:SSE2 는 x86 및 x64 빌드에 사용할 수 있으며 두 아키텍처의 기본값입니다. 향상된 명령어의 사용은 /arch:IA32로 비활성화할 수 있습니다. 자세한 내용은 다음을 참조하세요./arch (x86), /arch (x64), /arch (ARM64) 및 /arch (ARM).
선택
-
스트리밍 SIMD 확장(X86) - 스트리밍 SIMD 확장을 사용하도록 설정합니다.
/arch:SSE을 설정합니다. -
스트리밍 SIMD 확장 2(X86) - 스트리밍 SIMD 확장 2를 사용하도록 설정합니다.
/arch:SSE2을 설정합니다. -
고급 벡터 확장(X86/X64) - 고급 벡터 확장을 사용하도록 설정합니다.
/arch:AVX을 설정합니다. -
고급 벡터 확장 2(X86/X64) - 고급 벡터 확장 2를 사용하도록 설정합니다.
/arch:AVX2을 설정합니다. -
고급 벡터 확장 512(X86/X64) - 고급 벡터 확장 512를 사용하도록 설정합니다.
/arch:AVX512을 설정합니다. -
고급 벡터 확장 AVX10.1(X86/X64) - 고급 벡터 확장 10 버전 1을 사용하도록 설정합니다.
/arch:AVX10.1을 설정합니다. -
고급 벡터 확장 AVX10.2(X86/X64) - 고급 벡터 확장 10 버전 2를 사용하도록 설정합니다.
/arch:AVX10.2을 설정합니다. -
ARM(가상화 확장). ARM 가상화 확장을 사용하도록 설정합니다.
/arch:ARMv7VE을 설정합니다. -
ARM VFPv4 명령어(ARM). ARM VFPv4 명령을 사용하도록 설정합니다.
/arch:VFPv4을 설정합니다. -
CPU 확장 요구 사항 ARMv8.0-A(ARM64). ARMv8.0-A 요구 사항을 사용하도록 설정합니다.
/arch:arm8.0을 설정합니다. -
CPU 확장 요구 사항 ARMv8.1-A(ARM64). ARMv8.1-A 요구 사항을 사용하도록 설정합니다.
/arch:arm8.1을 설정합니다. -
CPU 확장 요구 사항 ARMv8.2-A(ARM64). ARMv8.2-A 요구 사항을 사용하도록 설정합니다.
/arch:arm8.2을 설정합니다. -
CPU 확장 요구 사항 ARMv8.3-A(ARM64). ARMv8.3-A 요구 사항을 사용하도록 설정합니다.
/arch:arm8.3을 설정합니다. -
CPU 확장 요구 사항 ARMv8.4-A(ARM64). ARMv8.4-A 요구 사항을 사용하도록 설정합니다.
/arch:arm8.4을 설정합니다. -
CPU 확장 요구 사항 ARMv8.5-A(ARM64). ARMv8.5-A 요구 사항을 사용하도록 설정합니다.
/arch:arm8.5을 설정합니다. -
CPU 확장 요구 사항 ARMv8.6-A(ARM64). ARMv8.6-A 요구 사항을 사용하도록 설정합니다.
/arch:arm8.6을 설정합니다. -
CPU 확장 요구 사항 ARMv8.7-A(ARM64). ARMv8.7-A 요구 사항을 사용하도록 설정합니다.
/arch:arm8.7을 설정합니다. -
CPU 확장 요구 사항 ARMv8.8-A(ARM64). ARMv8.8-A 요구 사항을 사용하도록 설정합니다.
/arch:arm8.8을 설정합니다. -
향상된 지침 없음 - x86 빌드에 대한 향상된 지침을 사용하지 않도록 설정합니다.
/arch:IA32을 설정합니다. -
설정되지 않음 - 옵션을 명시적으로 설정
/arch하지 않습니다.
향상된 명령 집합을 지원하는 프로세서에서 찾은 지침을 사용하도록 설정합니다. 예를 들어 SSE, SSE2, AVX 및 AVX2가 IA-32로 향상되고 AVX 및 AVX2가 x64로 향상되었습니다. 현재 /arch:SSE/arch:SSE2 x86 아키텍처를 빌드할 때만 사용할 수 있습니다. 옵션이 지정되지 않은 경우 컴파일러는 SSE2를 지원하는 프로세서에서 찾은 지침을 사용합니다. 향상된 명령어의 사용은 /arch:IA32로 비활성화할 수 있습니다. 자세한 내용은 다음을 참조하세요./arch (x86), /arch (x64), /arch (ARM64) 및 /arch (ARM).
선택
-
스트리밍 SIMD 확장(X86) - 스트리밍 SIMD 확장을 사용하도록 설정합니다.
/arch:SSE을 설정합니다. -
스트리밍 SIMD 확장 2(X86) - 스트리밍 SIMD 확장 2를 사용하도록 설정합니다.
/arch:SSE2을 설정합니다. -
고급 벡터 확장(X86/X64) - 고급 벡터 확장을 사용하도록 설정합니다.
/arch:AVX을 설정합니다. -
고급 벡터 확장 2(X86/X64) - 고급 벡터 확장 2를 사용하도록 설정합니다.
/arch:AVX2을 설정합니다. -
고급 벡터 확장 512(X86/X64) - 고급 벡터 확장 512를 사용하도록 설정합니다.
/arch:AVX512을 설정합니다. -
고급 벡터 확장 AVX10.1(X86/X64) - 고급 벡터 확장 10 버전 1을 사용하도록 설정합니다.
/arch:AVX10.1을 설정합니다. -
ARM(가상화 확장). ARM 가상화 확장을 사용하도록 설정합니다.
/arch:ARMv7VE을 설정합니다. -
ARM VFPv4 명령어(ARM). ARM VFPv4 명령을 사용하도록 설정합니다.
/arch:VFPv4을 설정합니다. -
CPU 확장 요구 사항 ARMv8.0-A(ARM64). ARMv8.0-A 요구 사항을 사용하도록 설정합니다.
/arch:arm8.0을 설정합니다. -
CPU 확장 요구 사항 ARMv8.1-A(ARM64). ARMv8.1-A 요구 사항을 사용하도록 설정합니다.
/arch:arm8.1을 설정합니다. -
CPU 확장 요구 사항 ARMv8.2-A(ARM64). ARMv8.2-A 요구 사항을 사용하도록 설정합니다.
/arch:arm8.2을 설정합니다. -
CPU 확장 요구 사항 ARMv8.3-A(ARM64). ARMv8.3-A 요구 사항을 사용하도록 설정합니다.
/arch:arm8.3을 설정합니다. -
CPU 확장 요구 사항 ARMv8.4-A(ARM64). ARMv8.4-A 요구 사항을 사용하도록 설정합니다.
/arch:arm8.4을 설정합니다. -
CPU 확장 요구 사항 ARMv8.5-A(ARM64). ARMv8.5-A 요구 사항을 사용하도록 설정합니다.
/arch:arm8.5을 설정합니다. -
CPU 확장 요구 사항 ARMv8.6-A(ARM64). ARMv8.6-A 요구 사항을 사용하도록 설정합니다.
/arch:arm8.6을 설정합니다. -
CPU 확장 요구 사항 ARMv8.7-A(ARM64). ARMv8.7-A 요구 사항을 사용하도록 설정합니다.
/arch:arm8.7을 설정합니다. -
CPU 확장 요구 사항 ARMv8.8-A(ARM64). ARMv8.8-A 요구 사항을 사용하도록 설정합니다.
/arch:arm8.8을 설정합니다. -
향상된 지침 없음 - x86 빌드에 대한 향상된 지침을 사용하지 않도록 설정합니다.
/arch:IA32을 설정합니다. -
설정되지 않음 - 옵션을 명시적으로 설정
/arch하지 않습니다.
선택
-
스트리밍 SIMD 확장 - 스트리밍 SIMD 확장. 설정
/arch:SSE -
스트리밍 SIMD 확장 2 - 스트리밍 SIMD 확장 2. 설정
/arch:SSE2 -
고급 벡터 확장 - 고급 벡터 확장. 설정
/arch:AVX -
고급 벡터 확장 2 - 고급 벡터 확장 2. 설정
/arch:AVX2 -
향상된 명령 없음 - 향상된 명령이 없습니다. 설정
/arch:IA32 - 설정 되지 않음 - 설정되지 않음.
벡터 길이 활성화
벡터 길이를 /arch:AVX512 및 /arch:AVX10.x 플래그에 따라 선택할 수 있도록 활성화합니다. 허용되는 값은 256비트 및 512비트(X86/X64)입니다.
부동 소수점 모델
부동 소수점 모델을 설정합니다. Sets/fp:precise, /fp:strict, /fp:fast.
선택
- Precise - 기본값입니다. 같음 및 같지 않음에 대한 부동 소수점 테스트의 일관성을 향상시킵니다.
-
Strict - 가장 엄격한 부동 소수점 모델입니다.
/fp:strict가fp_contract이 꺼지고fenv_access이 켜지게 합니다./fp:except는 암시적이며 명시적으로 지정하여/fp:except-비활성화할 수 있습니다. 함께/fp:except-/fp:strict사용하는 경우 예외 이벤트를 존중하지 않고 엄격한 부동 소수점 의미 체계를 적용합니다. - Fast - 대부분의 경우 가장 빠른 코드를 만듭니다.
부동 소수점 예외 사용
신뢰할 수 있는 부동 소수점 예외 모델입니다. 예외는 트리거된 직후에 발생합니다.
/fp:except을 설정합니다.
핫패치 가능 이미지 만들기
핫패칭이 켜지면 컴파일러는 핫 패치에 필요한 대로 각 함수의 첫 번째 명령이 2바이트인지 확인합니다.
/hotpatch을 설정합니다.
스펙터 완화
CVE 2017-5753에 대한 스펙터 완화.
/Qspectre을 설정합니다.
선택
- 사용 - CVE 2017-5753에 대한 Spectre 완화 기능을 사용하도록 설정합니다.
- 모든 로드 - 모든 부하 에서 스펙터 완화를 사용하도록 설정합니다.
- 모든 제어 흐름 로드 - 제어 흐름 로드에 대해 Spectre 완화를 사용하도록 설정합니다.
- 사용 안 함 - 설정되지 않았습니다.
스펙터 완화
CVE 2017-5753에 대한 스펙터 완화.
/Qspectre을 설정합니다.
선택
- 사용 - CVE 2017-5753에 대한 Spectre 완화 기능을 사용하도록 설정합니다.
- 사용 안 함 - 설정되지 않았습니다.
Intel JCC Erratum 완화 기능을 활성화합니다.
Intel JCC erratum 마이크로코드 업데이트로 인한 성능 영향에 대한 소프트웨어 완화.
/QIntel-jcc-erratum을 설정합니다.
EH 연속성 메타데이터 활성화
RIP 유효성 검증 목적으로 런타임 중에 사용되는 바이너리의 모든 유효한 예외 처리 연속 목표의 정렬된 목록을 생성합니다. 현재 x64 빌드에 사용할 수 있습니다.
/guard:ehcont을 설정합니다.
서명된 반환 사용
함수 반환 시 유효하지 않은 블록으로 제어를 전달하려는 시도를 감지하고 방지하는 데 도움이 되는 서명된 반환 기능을 활성화합니다. 현재 ARM64 빌드에 사용할 수 있습니다.
/guard:signret을 설정합니다.
C/C++ 언어 속성
언어 확장 사용 안 함
언어 확장을 표시하지 않거나 사용하도록 설정합니다.
/Za을 설정합니다.
WChar_t를 기본 데이터 형식으로 처리
이 속성을 사용하도록 설정하면 wchar_t은(는) short이(가) __int16에 매핑되는 것과 동일한 방식으로 __wchar_t에 매핑되는 네이티브 형식이 됩니다.
/Zc:wchar_t는 기본적으로 설정되어 있습니다.
For 루프 범위의 강제 규칙
Microsoft 확장을 사용하여 문 루프에 for 대한 표준 C++ 동작을 구현합니다. 설정 /Za, /Ze (언어 확장 사용 안 함.
/Zc:forScope는 기본적으로 설정되어 있습니다.
참조되지 않은 코드 및 데이터 제거
이 속성을 사용하도록 설정하면 컴파일러는 더 이상 참조되지 않은 코드 및 데이터에 대한 기호 정보를 생성하지 않습니다.
형식 변환 규칙 적용
C++11 표준에 따라 캐스트 작업의 결과로 rvalue 참조 형식을 식별하는 데 사용됩니다.
런타임 형식 정보 활성화
런타임(런타임 형식 정보 또는 RTTI)에서 C++ 개체 형식을 확인하는 코드를 추가합니다. 집합 /GR, /GR-.
MP 지원 열기
OpenMP 2.0 언어 확장을 사용하도록 설정합니다.
/openmp을 설정합니다.
C++ 언어 표준
컴파일러에서 적용하는 C++ 언어 표준을 결정합니다. 기본값은 표준 옵션을 설정하지 않으므로 컴파일러는 기본 C++14 설정을 사용합니다. 특정 값을 선택하면 해당 /std 컴파일러 옵션이 설정됩니다.
선택
- 기본값(ISO C++14 표준)
- ISO C++14 표준(/std:c++14)
- ISO C++17 표준(/std:c++17)
- ISO C++20 표준(/std:c++20)
- 미리 보기 - ISO C++23 표준(/std:c++23preview)
- 미리 보기 - 최신 C++ 작업 초안의 기능(/std:c++latest)
C 언어 표준
컴파일러에서 적용하는 C 언어 표준을 결정합니다. 기본값은 표준 옵션을 설정하지 않으므로 컴파일러는 기본 레거시 MSVC 설정을 사용합니다. 특정 값을 선택하면 해당 /std 컴파일러 옵션이 설정됩니다.
선택
- 기본값(레거시 MSVC)
- ISO C11 표준(/std:c11)
- ISO C17(2018) 표준(/std:c17)
- 미리 보기 - 최신 C 작업 초안의 기능(/std:clatest)
준수 모드
규격 준수 모드를 활성화하거나 비활성화합니다.
/permissive-을 설정합니다.
실험적 C++ 표준 라이브러리 모듈 사용
C++ 모듈 TS 및 표준 라이브러리 모듈에 대한 실험적 지원.
ISO C++23 표준 라이브러리 모듈 빌드
Visual Studio 17.6부터 이 속성이 활성화되고 C++ 언어 표준 이 설정된 /std:c++latest경우 Microsoft C++ 프로젝트는 ISO C++23 표준 라이브러리 모듈을 자동으로 찾아 빌드합니다. 이를 통해 C++ 코드에서 import std 또는 import std.compat을 수행할 수 있습니다.
C/C++ 미리 컴파일된 헤더 속성
미리 컴파일된 헤더
미리 컴파일된 헤더 만들기/사용
빌드하는 동안 미리 컴파일된 헤더를 만들거나 사용하도록 설정합니다. 집합 /Yc, /Yu.
선택
-
만들기 - 컴파일러가 특정 지점에서 컴파일 상태를 나타내는 미리 컴파일된 헤더(
.pch) 파일을 만들도록 지시합니다. -
사용 - 현재 컴파일에서 미리 컴파일된 기존 헤더(
.pch) 파일을 사용하도록 컴파일러에 지시합니다. - 미리 컴파일된 헤더를 사용하지 않음 - 미리 컴파일된 헤더를 사용하지 않습니다.
미리 컴파일된 헤더 파일
컴파일러가 미리 컴파일된 헤더를 만들거나 액세스하는 데 사용하는 헤더 파일의 이름을 지정합니다. 집합 /Yc, /Yu.
미리 컴파일된 헤더 출력 파일
미리 컴파일된 생성된 헤더 파일의 경로 또는 이름을 지정합니다.
/Fp을 설정합니다.
C/C++ 출력 파일 속성
속성 부여된 소스 확장
원본 파일에 삽입된 확장된 특성을 사용하여 목록 파일을 만듭니다.
/Fx을 설정합니다.
어셈블러 출력
어셈블리 언어 출력 파일의 내용을 지정합니다. 설정: /FA, /FAs, /FAc, /FAcs.
선택
- 목록 없음 - 목록이 없습니다.
-
어셈블리 전용 목록 - 어셈블리 코드:
.asm. -
컴퓨터 코드를 사용한 어셈블리 - 컴퓨터 및 어셈블리 코드:
.cod. -
소스 코드를 사용한 어셈블리 - 소스 및 어셈블리 코드:
.asm. -
어셈블리, 컴퓨터 코드 및 소스 - 어셈블리, 컴퓨터 코드 및 소스 코드:
.cod.
어셈블러 목록에 유니코드 사용
출력 파일을 UTF-8 형식으로 만듭니다.
ASM 목록 위치
ASM 목록 파일의 상대 경로 또는 이름을 지정합니다. 파일 또는 디렉터리 이름이 될 수 있습니다.
/Fa을 설정합니다.
모듈 출력 파일 이름
모듈 또는 헤더 단위 출력(BMI) 파일 위치입니다. 파일 또는 디렉터리 이름이 될 수 있습니다.
/ifcOutput[name]을 설정합니다.
모듈 종속성 파일 이름
생성된 모듈 종속성 파일의 경로 및/또는 이름을 지정합니다.
/scanDependencies[path]을 설정합니다.
개체 파일 이름
기본 개체 파일 이름을 재정의할 이름을 지정합니다. 파일 또는 디렉터리 이름이 될 수 있습니다.
/Fo을 설정합니다.
프로그램 데이터베이스 파일 이름
컴파일러에서 생성된 PDB 파일의 이름을 지정합니다. 또한 필요한 컴파일러 생성 IDB 파일의 기본 이름을 지정합니다. 파일 또는 디렉터리 이름이 될 수 있습니다.
/Fd을 설정합니다.
XML 설명서 파일 생성
컴파일러가 XML 설명서 주석 파일을 생성해야 되도록 지정합니다(.) XDC).
/doc을 설정합니다.
XML 설명서 파일 이름
생성된 XML 설명서 파일의 이름을 지정합니다. 파일 또는 디렉터리 이름이 될 수 있습니다. 이름을 설정합니다/doc:<>.
원본 종속성 파일 생성
컴파일러가 원본 컴파일에 사용되는 모든 파일 목록을 사용하여 JSON 파일을 생성합니다.
/sourceDependencies을 설정합니다.
원본 종속성 파일 이름
생성된 원본 종속성 파일의 경로 및/또는 이름을 지정합니다.
/sourceDependencies[path]을 설정합니다.
C/C++ 정보 찾아보기 속성
찾아보기 정보 활성화
컴파일러에서 파일을 생성해야 하는지 여부를 지정합니다 .bsc .
/FR을 설정합니다.
정보 파일 찾아보기
브라우저 정보 파일의 선택적 이름을 지정합니다. 이름을 설정합니다/FR<>.
C/C++ 외부 인클루드 속성
꺾쇠 괄호에 포함된 파일을 외부 파일로 처리
꺾쇠 괄호에 포함된 파일을 외부로 처리할지 여부를 지정합니다. 이 속성을 Yes로 설정하여 /external:anglebrackets 컴파일러 옵션을 설정합니다.
외부 헤더 경고 수준
컴파일러가 외부 헤더의 코드 오류에 대해 얼마나 엄격한지 선택합니다. 이 속성은 /external:Wn 컴파일러 옵션을 설정합니다. 이 값이 프로젝트 경고 수준 또는 기본값 상속으로 설정된 경우 다른 /external 옵션은 무시됩니다.
외부 헤더의 템플릿 진단
템플릿 인스턴스화 체인에서 경고 수준을 평가할지 여부를 지정합니다. 이 속성을 Yes로 설정하여 /external:templates- 컴파일러 옵션을 설정합니다.
외부 헤더에 대한 코드 분석 사용 안 함
외부 헤더에 대한 코드 분석을 사용하지 않도록 설정합니다.
/analyze:external- 컴파일러 옵션을 설정합니다.
외부 헤더에 대한 분석 규칙 집합
외부 헤더에 대한 코드 분석 규칙 집합 재정의를 지정합니다. 이 속성을 지정하지 않으면 Code Analysis 설정이 사용됩니다.
/analyze:external:ruleset path 컴파일러 옵션을 설정합니다.
C/C++ 고급 속성
호출 규칙
애플리케이션에 대한 기본 호출 규칙을 선택합니다(함수로 재정의할 수 있음). 설정: /Gd, /Gz, /Gr, /Gv.
선택
-
__cdecl- C++ 멤버 함수 및 표시된__stdcall함수 또는__fastcall함수를 제외한 모든 함수에 대한 호출 규칙을 지정__cdecl합니다. -
__fastcall- C++ 멤버 함수 및 표시된__cdecl함수 또는__stdcall함수를 제외한 모든 함수에 대한 호출 규칙을 지정__fastcall합니다. 모든__fastcall함수에는 프로토타입이 있어야 합니다. -
__stdcall- C++ 멤버 함수 및 표시된__cdecl함수 또는__fastcall함수를 제외한 모든 함수에 대한 호출 규칙을 지정__stdcall합니다. 모든__stdcall함수에는 프로토타입이 있어야 합니다. -
__vectorcall- C++ 멤버 함수와__cdecl,__vectorcall또는__stdcall로 표시된 함수를 제외한 모든 함수에 대해__fastcall호출 규약을 지정합니다. 모든__vectorcall함수에는 프로토타입이 있어야 합니다.
다음으로 컴파일
소스 파일에 대한 컴파일 언어 옵션을 선택합니다. 설정 /TC, /TP, /interface, /internalPartition, 또는 /exportHeader 옵션.
선택
- 기본값 - 기본값입니다.
-
C 코드로 컴파일(
/TC) - 지정된 소스 파일을 C 코드로 컴파일합니다. 기본적으로 확장이 있는.c파일은 C로 컴파일됩니다. -
C++ 코드로 컴파일(
/TP) - 지정된 소스 파일을 C++ 코드로 컴파일합니다. 기본적으로 확장명이 없거나 확장명이 없는.c.ixx.cppm.h모든 원본 파일은 C++로 컴파일됩니다. -
C++ 모듈 코드로 컴파일(
/interface) - 지정된 소스 파일을 C++ 모듈 코드로 컴파일합니다. 기본적으로.cppm또는.ixx확장자를 가진 파일은 C++ 모듈 코드로 컴파일됩니다. -
C++ 모듈 내부 파티션으로 컴파일(
/internalPartition) - 지정된 원본 파일을 C++ 모듈 내부 파티션으로 컴파일합니다. -
C++ 헤더 단위로 컴파일(
/exportHeader) - 지정된 소스 파일을 C++ 헤더 단위로 컴파일합니다. 기본적으로.h확장자를 가진 파일이나 확장자가 없는 파일은 헤더 유닛으로 컴파일됩니다.
특정 경고 사용 안 함
지정된 경고 번호를 사용하지 않도록 설정합니다. 세미콜론으로 구분된 목록에 경고 번호를 넣습니다.
숫자/wd<>을 설정합니다.
강제 포함 파일
하나 이상의 강제 포함 파일을 지정합니다. 이름을 설정합니다/FI<>.
강제 #using 파일
강제된 #using 파일 하나 이상을 지정합니다. 이름을 설정합니다/FU<>.
포함된 항목 표시
컴파일러 출력으로 포함 파일 목록을 생성합니다.
/showIncludes을 설정합니다.
전체 경로 사용
진단 메시지에서 전체 경로를 사용합니다.
/FC을 설정합니다.
기본 라이브러리 이름 생략
파일에서 .obj 기본 라이브러리 이름을 생략하도록 지정합니다.
/Zl을 설정합니다.
내부 컴파일러 오류 보고
참고
이 옵션은 사용되지 않습니다. Windows Vista부터 오류 보고는 WER(Windows 오류 보고) 설정에 의해 제어됩니다.
특정 경고를 오류로 처리
특정 컴파일러 경고를 오류로 처리합니다. 여기서 n은 컴파일러 경고입니다.
추가 옵션
추가 옵션.