본문 바로가기

프로그래밍 활용(TIP)

error C3859: PCH에 대한 가상 메모리 범위를 초과했습니다.


Visual C++ 컴파일러 옵션
/Zm(메모리 할당 제한 지정)

미리 컴파일된 헤더에 대한 컴파일러의 메모리 할당 제한을 지정합니다.

/Zmnumber
number

미리 컴파일된 헤더의 메모리 할당 제한을 결정하는 배율 인수입니다.

number 인수는 배율 인수입니다. 기본값은 100이며, 이는 50MB의 메모리 할당을 지정합니다. 최대값은 2000입니다. 다음 표에서는 number가 메모리 할당을 어떻게 수정하는지 보여 줍니다.

메모리 할당

10

5.0MB

100

50MB

200

100MB

1000

500MB

2000

1000MB

이전 버전의 Visual C++에서는 컴파일러가 각각 일정한 제한이 있는 여러 개의 개별 힙을 사용했습니다. 지금은 컴파일러가 필요에 따라 동적으로 힙의 크기를 늘리므로 미리 컴파일된 헤더에 할당되는 메모리의 크기만 일정하게 지정하면 됩니다. 미리 컴파일된 헤더의 힙 크기에 대한 제한 중 하나라도 초과하는 경우는 매우 크거나 복잡한 프로그램이 관련된 극히 드문 상황에서만 발생합니다. 프로그램에서 이러한 제한 중 하나를 초과하는 경우 /Zm을 사용하여 모든 제한의 총 크기를 확장하십시오.

대부분의 경우에는 이 컴파일러 옵션을 사용할 필요가 없습니다. 프로그램을 컴파일할 때 /Zm 값을 설정하라는 오류 메시지가 발생하는 경우에 이 옵션을 사용하십시오.

Visual Studio 개발 환경에서 이 컴파일러 옵션을 설정하려면

  1. 프로젝트의 속성 페이지 대화 상자를 엽니다. 자세한 내용은 방법: 프로젝트 속성 페이지 열기를 참조하십시오.

  2. C/C++ 폴더를 클릭합니다.

  3. 명령줄 속성 페이지를 클릭합니다.

  4. 추가 옵션 상자에 컴파일러 옵션을 입력합니다.

프로그래밍 방식으로 이 컴파일러 옵션을 설정하려면