/GL(전체 프로그램 최적화)

업데이트: 2007년 11월

전체 프로그램 최적화를 사용합니다.

/GL[-]

설명

전체 프로그램 최적화를 사용하면 컴파일러는 프로그램 내의 모든 모듈에 대한 정보를 사용하여 최적화를 수행합니다. 전체 프로그램 최적화를 사용하지 않으면 모듈(컴파일)별로 최적화가 수행됩니다.

전체 프로그램 최적화는 기본적으로 설정되어 있지 않으므로 명시적으로 설정해야 합니다. 그러나 /GL-를 사용하여 이 옵션을 명시적으로 해제할 수도 있습니다.

모든 모듈에 대한 정보를 사용하여 컴파일러는 다음과 같은 작업을 수행할 수 있습니다.

  • 함수에 관계 없이 레지스터 사용을 최적화할 수 있습니다.

  • 전역 데이터의 수정 사항을 더 효율적으로 추적하여 로드 및 저장 횟수를 줄일 수 있습니다.

  • 포인터 역참조로 수정된 항목의 가능한 집합을 더 효율적으로 추적하여 로드 및 저장 횟수를 줄일 수 있습니다.

  • 다른 모듈에서 정의된 함수도 모듈 내에 포함할 수 있습니다.

/GL을 사용하여 생성한 .obj 파일은 EDITBIN 참조DUMPBIN 참조 같은 링커 유틸리티에서는 사용할 수 없습니다.

/GL/c(링크 없이 컴파일)를 사용하여 프로그램을 컴파일하려면 /LTCG 링커 옵션을 사용하여 출력 파일을 만들어야 합니다.

/Z7, /Zi, /ZI(디버깅 정보 형식)/GL과 함께 사용할 수 없습니다.

현재 버전에서 /GL을 사용하여 생성한 파일 형식은 Visual C++의 이후 버전에서 읽지 못할 수도 있습니다. 사용자가 현재 또는 미래에 사용할 Visual C++의 모든 버전의 .lib 파일 사본을 제공하지 않으려면 /GL을 사용하여 생성한 .obj 파일로 구성되는 .lib 파일을 제공해서는 안 됩니다.

/GL을 사용하여 .obj 파일을 생성한 동일한 컴퓨터에서 .lib 파일이 링크되지 않는 경우, /GL을 사용하여 생성한 .obj 파일과 미리 컴파일한 헤더 파일을 사용하여 .lib 파일을 빌드해서는 안 됩니다. .obj 파일에 있는 미리 컴파일한 헤더 파일의 정보는 링크할 때 필요합니다.

전체 프로그램 최적화의 제한 사항과 사용할 수 있는 최적화에 대한 자세한 내용은 /LTCG(링크 타임 코드 생성)를 참조하십시오. /GL에서도 프로필 기반 최적화를 사용할 수 있습니다. /LTCG를 참조하십시오. 프로필 기반 최적화를 사용하여 컴파일하는 경우 프로필 기반 최적화에 따라 함수의 순서를 지정하려면 /Gy(함수 수준 링크 사용)를 사용하거나 /Gy가 내포된 컴파일러 옵션을 사용하여 컴파일해야 합니다.

Visual Studio 개발 환경에서 이 링커 옵션을 설정하려면

프로그래밍 방식으로 이 링커 옵션을 설정하려면

참고 항목

참조

컴파일러 옵션

컴파일러 옵션 설정