VisualStudio에서 프로젝트 -> 우클릭 -> 속성에 들어가면 프로젝트의 구성 속성에 다양한 옵션을 지정 할 수있습니다.

의미가 명확하지 않은 옵션들이 있어 틈날 때마다 본 포스팅에 정리 할 예정입니다.

  • 강제 포함 파일 : 전처리기로 하여금 지정된 헤더 파일을 포함하도록 합니다. 이 옵션은 모든 소스 파일 첫 줄에 #include "파일명"을 삽입하는 효과와 동일합니다.
  • 추가 옵션 : 빌드 명령줄에 커스텀하게 추가 할 옵션을 n개 이상 명시 할 수 있습니다.
    • /bigobj : 목적 파일에 포함 할 수 있는 섹션의 수를 늘립니다. 목적 파일은 기본적으로 65,279개(약 2^16)의 주소 섹션을 갖는데 4,294,967,296(2^32)로 늘립니다.
    • **/std:c++14** or /std:c++17 or /std:c++latest or /std:c++20(예정) : 프로젝트의 C++ 버전 세팅 관련 옵션입니다.
    • /await : 코루틴에 대한 컴파일러 지원 사용 가능케 합니다. co_await co_yield co_return
  • 디버깅 정보 생성 : .PDB 파일 생성시 관련된 옵션이며 여러 설정값이 있습니다. 자세한 내용
  • 링크 타임 코드 생성 : LTCG를 이용해 링크타임에 소스코드 최적화 관련 기능, 프로젝트가 복잡 할 경우 이 옵션을 끌 경우 빌드속도가 기적절으로 빨라 질 수 있습니다. 15분 -> 2~3분. 자세한 내용, 관련 NDC 자료
  • 프레임 포인터 생략 : /Oy- 추천, 이 옵션을 설정하면 프레임 포인터를 설정하고 제거할 필요가 없기 때문에 함수 호출 속도가 빨라집니다. 또한 일반 용도를 위해 레지스터를 하나 더 해제합니다. 호출 스택에서 프레임 포인터를 생성하지 않으며 이에 따라 함수 호출 속도가 빨라진다. 이 것은 x86 컴파일러에서만 사용할 수 있다. /Oy를 사용하면 프레임 포인터가 생략되며 /Oy-를 사용하면 프레임 포인터 생략이 비활성화된다. 이 옵션을 사용하면 즉 /Oy가 설정되면 이 EBP를 스택 프레임으로서 사용하지 않고 General Purpose로 사용하게 된다.
  • 준수 모드 : 컴파일러에 대해 프로그래밍 문법 표준 준수 여부 지시
  • 컴파일 옵션 : C or C++로 컴파일 대상 지정 가능