본문 바로가기
Unreal/Solution

Unreal Error C3859 : PCH에 대한 가상 메모리를 만들지 못했습니다.

by Dev_카페인 2024. 2. 7.
반응형

[Unreal/C++] Error C3859 : PCH에 대한 가상 메모리를 만들지 못했습니다.

 

1>c1xx : error C3859: PCH에 대한 가상 메모리를 만들지 못했습니다.
1>c1xx: note: 시스템에서 1455 코드를 반환함: 이 작업을 완료하기 위한 페이징 파일이 너무 작습니다.
1>c1xx: note: 자세한 내용은 https://aka.ms/pch-help를 참조하세요.
1>c1xx : fatal error C1076: 컴파일러 한계: 내부 힙 한계에 도달했습니다.
1>c1xx : error C3859: PCH에 대한 가상 메모리를 만들지 못했습니다.
1>c1xx: note: 시스템에서 1455 코드를 반환함: 이 작업을 완료하기 위한 페이징 파일이 너무 작습니다.
1>c1xx: note: 자세한 내용은 https://aka.ms/pch-help를 참조하세요.
1>c1xx : fatal error C1076: 컴파일러 한계: 내부 힙 한계에 도달했습니다.

 

시스템 설정에서 가상 메모리 크기를 늘려준다.

 

설정 -> 시스템 -> 정보 -> 고급 시스템 설정 ->

(시스템속성)고급 -> (성능)설정 ->

(성능 옵션) 고급 -> (가상 메모리) 변경 ->

(가상 메모리) 드라이브 선택 -> 사용자 지정 크기 -> 처음 크기와 최대 크기 설정 -> 확인

 

처음 크기 추천 : 설치된 RAM 크기(32GB) * 1024(1GB = 1024MB)

최대 크기 추천 : 설치된 RAM 크기(32GB) * 1024(1GB = 1024MB) * (1.5 ~ 3)

 

설치된 RAM 

1GB = 1024MB

2GB = 2048MB

4GB = 4096MB

8GB = 8192MB

16GB = 16384MB

32GB = 32768MB

64GB = 65536MB

 

외에도 Zm 수치를 조절하는 방법이 있다.

프로젝트 속성 -> C/c++ 의 Commend Line 에서 -Zm{000} 수치를 추가할 수 있습니다.

ex)-Zm128  => 출력창에 나오는 수치를 보고 그 이상으로 설정합니다.

 

 

/Zm 옵션이 적용되는지 확인하는 방법은 엔진 설치 경로에서 Intermediate/Build/XGETasks.xml 을 확인합니다.

Tools > Tool Element 에 Params 으로 실제 cl 에 넘어가는 파일 경로를 확인할 수 있습니다.

'파일명.cpp.obj.response' 형식 파일을 열어서 /Zm 옵션이 적용되어 있는 것을 확인할 수 있습니다.

IncrediBuild Coordinator 로 column 에 Environment > Virtual Memory 를 확인하여 가용 용량을 확인할 수 있습니다.

 

이 문제가 발생했을 때 /Zm 옵션을 활용하는 것을 많이 볼 수 있는데, MS에서 공식적으로 권장하는 설정은 #pragra hdrstop 지시문을 활용하고 있을 때 /Zm을 활용하고, 일반적인 경우는 메모리를 일정 크기의 가상 메모리로 나눠(페이징) 할당하는 단위를 크게 만들어주는 것이 좋습니다.

반응형