티스토리 뷰

make 컴파일 오류 Clock skew detected 해결 방법

make를 하다 보면 가끔 Clock skew detected 란 오류 메시지를 접하는 경우가 있습니다. 오류 발생 시 다음의 사항을 체크해서 해결해 보도록 합시다.

증상

make: warning: Clock skew detected. Your build may be incomplete.

위와 다음과 같은 오류를 표시합니다. 원인으로는 시스템의 시간과 컴파일 하고자 하는 소스 파일의 시간이 맞지 않는 경우 발생합니다. 가령 시스템의 시간보다 미래에 저장된 소스 파일인 경우가 이에 해당합니다. 이런 오류는 보통 VMWARE를 사용할 경우에 잘 발생됩니다.

해결 방법

잉고래가 시간(Clock)관련 컴파일 오류인 'Clock skew detected'의 해결에 사용한 방법은 다음과 같습니다.

1. 우분투(Ubuntu) 기준으로 외부서버의 시간(네트워크 타임)과 현재 시스템의 시간을 동기화 합니다. 이는 기준이 되는 로컬 시간을 정확히 하고자 함 입니다.

$ sudo ntpdate ntp.postech.ac.kr

2. 현재 시스템 시간을 하드웨어 클럭(바이오스의 시간)으로 동일하게 맞춰 줍니다.

$ sudo hwclock --systohc

3. 각 소스(코드) 파일들의 액세스(access)와 수정(modification) 시간을 현재시각으로 업데이트 합니다.

$ touch *

4. 새로 컴파일 해 봅시다.

$ make clean
$ make

5. 기타 꼼수 : 시스템의 시간을 소스파일의 업데이트 시간보다 이후로 변경해줘도 됩니다만 정석은 아니죠.

$ sudo date -s "2013-04-02 20:06" make clean make

결론

여러 사람과 협업을 하거나 다른 프로젝트를 가져온다던가 여러가지의 이유로 코드의 이동을 하다 보면 이런 컴파일 오류를 접할 수 있습니다. 개발자 라면 거의 매일(?) 접하게 되는 컴파일 오류. 짜증내지 말고 느긋하게 원인을 무엇인지 공부의 기회로 삼으면 정신 건강에 이롭더군요. ^^ 여기까지 Clock skew detected 오류의 해결 방법을 알아 보았습니다.