본문 바로가기

리눅스

리눅스 소스 컴파일 중 "c++: fatal error: Killed signal terminated program cc1plus" 에러

728x90

리눅스 소스 컴파일 중 "c++: fatal error: Killed signal terminated program cc1plus" 에러

  • 에러 메세지
c++: fatal error: Killed signal terminated program cc1plus
compilation terminated.
make[2]: *** [sql/CMakeFiles/sql_gis.dir/build.make:580: sql/CMakeFiles/sql_gis.dir/gis/union_functor.cc.o] Error 1
make[2]: *** Waiting for unfinished jobs....
  • 콘솔 에러 메세지

c1

오류는 컴파일 과정에서 메모리 부족으로 인해 프로그램이 강제 종료되었음을 나타냅니다. 이 오류를 해결하기 위해 다음 단계를 시도할 수 있습니다.

1. 메모리 부족 확인

오류 메시지가 메모리 부족으로 발생하는 것인지 확인해야 합니다. 메모리 사용량이 너무 많아서 프로그램이 종료되었을 수 있습니다. top 또는 htop 명령을 사용하여 현재 메모리 사용량을 확인해보세요.

2. 스왑(Swap) 활성화

스왑 공간을 활성화하면 메모리 부족 시에 스왑 공간을 사용하여 프로그램이 강제 종료되는 것을 방지할 수 있습니다. 스왑을 생성하고 활성화하는 방법은 다음과 같습니다.

 

  • 1GB 스왑 파일 생성
sudo fallocate -l 1G /swapfile
  • 스왑 파일 권한 설정
sudo chmod 600 /swapfile
  • 스왑 파일 형식 생성
sudo mkswap /swapfile
  • 스왑 활성화
sudo swapon /swapfile

위 명령을 실행한 후에는 다시 컴파일을 시도해보세요.

3. 메모리 사용량 줄이기

만약 컴파일 도중 메모리 사용량이 너무 높다면, 다른 프로세스나 작업을 중지하거나 메모리를 사용하는 다른 프로그램들을 제거해보세요.

4. 컴파일 옵션 조정

대규모 프로젝트를 컴파일할 때는 컴파일러가 필요한 메모리가 많을 수 있습니다. -j 또는 --jobs 옵션을 사용하여 병렬 컴파일 작업을 조정할 수 있습니다. 예를 들어, make -j2로 2개의 CPU 코어를 사용하여 컴파일하면 메모리 부족 오류를 완화할 수 있습니다.

5. 64비트 환경 사용

32비트 시스템에서는 메모리 제한이 있는 경우가 있을 수 있습니다. 64비트 환경으로 전환하여 메모리 부족 문제를 해결할 수 있습니다.

6. 시스템 자원 확인

CPU 및 메모리 사용량, 디스크 사용량 등 시스템의 자원 상태를 확인하여 어떤 자원이 부족한지 파악하고 대응하세요.

 

만약 이러한 단계를 시도한 후에도 문제가 지속되면, 프로그램이 사용하는 자원과 관련된 설정을 조정하여 문제를 해결할 수 있는지 확인하는 것이 좋습니다.

 

728x90