중요합니다
/dynamicdeopt
컴파일러 스위치는 현재 미리 보기로 제공됩니다.
이 정보는 릴리스 전에 크게 수정될 수 있는 시험판 기능과 관련이 있습니다. Microsoft는 여기에 제공된 정보와 관련하여 명시적이거나 묵시적인 보증을 하지 않습니다.
C++ 동적 디버깅(미리 보기) 사용하도록 설정하여 최적화된 코드를 컴파일된 것처럼 디버그하고 주문형 함수를 최적화하지 않은 상태로 어디서나 한 단계씩 실행할 수 있습니다.
구문론
/dynamicdeopt
/dynamicdeopt:suffix <suffix>
/dynamicdeopt:sync
논증
suffix
사용되지 않은 출력에 대한 파일 확장자를 지정합니다.
옵션이 없고 입력으로 test.cpp
제공된 출력에는 test.obj
, test.exe
및 test.pdb
뿐만 아니라 test.alt.obj
, test.alt.exe
및 test.alt.pdb
포함됩니다. 이 스위치를 사용하면 최적화되지 않은 이진 빌드 아티팩트의 접미사를 .alt
다른 항목으로 변경할 수 있습니다. 접미사를 변경하는 경우 모든 파일은 새 접미사를 사용해야 하며 /dynamicdeopt:suffix
(미리 보기)사용하여 링커에 전달된 이름과 일치해야 합니다. 일반적으로 파일 이름이 다른 파일과 충돌하지 않도록 해야 하는 경우가 아니면 이 스위치를 사용하지 않습니다.
sync
최적화된 출력을 병렬로 빌드하지 않고 빌드한 후 최적화되지 않은 출력을 빌드합니다. 기본적으로 컴파일러는 코드 생성기의 병렬 인스턴스를 생성합니다. 이 스위치를 사용하면 대신 직렬로 실행됩니다. 이 스위치는 빌드 환경에 더 적합한 경우에 제공됩니다.
비고
Visual Studio 2022 버전 17.14 미리 보기 2부터 사용할 수 있는 이 미리 보기 플래그는 x64 프로젝트에만 적용되며 해당 링커 플래그 /DYNAMICDEOPT
함께 사용해야 합니다.
/dynamicdeopt
사용하여 컴파일하면 디버깅에 사용되는 다른 이진 파일이 생성됩니다. 최적화된 파일에서 최적화된 함수를 디버그하면 디버거가 대신 대체 이진 파일로 이동합니다. 이렇게 하면 최적화된 코드의 성능 이점을 유지하면서 최적화되지 않은 코드를 디버깅하는 것처럼 디버그할 수 있습니다.
/dynamicdeopt
다음이 필요합니다.
/DEBUG
또는 /DEBUG:FULL
.
/DEBUG
지정하지 않거나 /DEBUG:FASTLINK
지정하면 링커에 심각한 오류가 발생합니다.
/INCREMENTAL
지정하면 컴파일러에서 경고를 생성하고 /INCREMENTAL
자동으로 해제합니다.
/OPT:ICF
지정하면 컴파일러는 디버그 환경이 좋지 않다는 경고를 생성합니다. 이는 ICF로 인해 함수가 대체 파일에서 제거될 수 있으므로 함수를 한 단계씩 실행할 수 없기 때문입니다.
IncrediBuild 10.24는 C++ 동적 디버깅 빌드를 지원합니다.
FastBuild v1.15는 C++ 동적 디버깅 빌드를 지원합니다.
/dynamicdeopt
편집 및 계속과 호환되지 않으며 다음 컴파일러가 전환됩니다.
/GL
/ZI
/RTC1
/RTCs
/RTCc
/RTCu
/GH
/Gh
/fastcap
/callcap
/ZW
/fsanitize=address
/fsanitize=kernel-address
All of the CLR flags
Visual Studio 개발 환경에서 이 링커 옵션 설정
Visual Studio 내에서 이 스위치를 설정할 수 있습니다. 자세한 내용은 C++ 동적 디버깅(미리 보기)참조하세요. MSBuild는 /GL
및 /OPT:ICF
같은 호환되지 않는 일부 스위치를 자동으로 표시하지 않으므로 Visual Studio에서 스위치를 설정하는 이점이 있습니다. 또한 해당 링커 옵션(/DYNAMICDEOPT
)을 설정합니다. 명령줄에서 스위치를 설정할 수도 있습니다.
프로그래밍 방식으로 이 컴파일러 옵션 설정
- CompileAsManaged를 참조하십시오.