티스토리 뷰

Visual Studio에서 수없이 빌드하다 보면 드물게 알 수 없는 링커 오류를 경험하기도 합니다. 특히 예기치 않은 PDB 오류 라는 메시지는 정신줄을 놓게 하기에 충분한 에러 메시지라고 생각합니다. 이 에러는 마이크로소프트에 다음과 같이 설명하고 있습니다:
 
LNK1318의 오류 문구는 다음과 같습니다:

fatal error LNK1318: Unexpected PDB error; FORMAT (11)

 
위 링크에서 보다시피 마이크로소프트에서 해당 문제를 인지하고 있지만 마땅한 해결법을 제공해주고 있지는 않습니다. 이러한 부분은 msdn을 통해 문제 해결을 요청하는 다른 개발자들에 대해서도 비슷한 태도를 취하고 있습니다. 마이크로소프트에서 제공한 일반적인 조언이 도움이 될 수도 있지만, 대개의 경우 지난 1000번의 잘 되던 빌드가 갑자기 LNK1318을 내뱉는 상황에서는 별로 도움이 되지 않습니다.
 
반나절정도 삽질한 끝에 해결한 방법을 공유하고자 포스팅합니다.
 
 

해결


결론부터 말하자면, pdb 파일 자체가 손상되어 있어서 발생한 문제였습니다. pdb 파일을 포함한 중간 파일들을 삭제한 후 재빌드하여 해결할 수 있었습니다.
 
추정되는 원인으로는 디스크 공간 부족으로 인해 빌드 후 pdb를 생성하는 과정에서 디스크 공간 부족으로 인해 pdb가 손상되는 것으로 생각하고 있습니다.
 
해결하는 과정에서 다소 의아했던 점은, 디스크 공간이 부족하다는 것을 깨닫고 충분한 디스크 용량을 확보한 후 솔루션 전체를 다시 빌드하였음에도 불구하고 LNK1318 에러를 계속 뱉어냈다는 점인데, pdb 및 기타 출력 파일들을 삭제하고 다시 빌드하였을 때 무사히 빌드가 완료된 것을 보았을 때 pdb가 솔루션 또는 프로젝트를 다시 빌드한다고 처음부터 다시 만드는 것 같지는 않습니다.

댓글