[Visual Studio] LINK : fatal error LNK1000: Internal error during IMAGE::Pass1
Development/Failure Log 2016. 6. 22. 11:59증상:
잘 사용하고 있던 프로젝트가 어느 순간 갑자기 링크 에러로 빌드가 실패했다.
컴파일이 끝난 후 링킹 과정에서 한참 동안 응답이 없기 때문에 문제 파악이 힘들었다.
1>------ 빌드 시작: 프로젝트: XXXXXXXX, 구성: Debug Win32 ------
1> LINK : F:\XXXX\...\XXXX.exe을(를) 찾을 수 없거나 마지막 증분 링크에 의해 빌드되지 않았습니다. 전체 링크를 수행하고 있습니다.
1>
1>LINK : fatal error LNK1000: Internal error during IMAGE::Pass1
1>
1> Version 14.00.23918.0
1>
1> ExceptionCode = C0000006
1> ExceptionFlags = 00000000
1> ExceptionAddress = 602FDBE0 (602F0000) "C:\WINDOWS\SYSTEM32\VCRUNTIME140.dll"
1> NumberParameters = 00000003
1> ExceptionInformation[ 0] = 00000000
1> ExceptionInformation[ 1] = FEA18AEA
1> ExceptionInformation[ 2] = C0000185
1>
1> CONTEXT:
1> Eax = FEA18B26 Esp = 0019E790
1> Ebx = 0019E7E4 Ebp = 0019E7B4
1> Ecx = 0000003C Esi = FEA18AEA
1> Edx = 00000001 Edi = 0019E7E4
1> Eip = 602FDBE0 EFlags = 00010202
1> SegCs = 00000023 SegDs = 0000002B
1> SegSs = 0000002B SegEs = 0000002B
1> SegFs = 00000053 SegGs = 0000002B
1> Dr0 = 00000000 Dr3 = 00000000
1> Dr1 = 00000000 Dr6 = 00000000
1> Dr2 = 00000000 Dr7 = 00000000
========== 빌드: 성공 0, 실패 1, 최신 0, 생략 0 ==========
구글링을 해 보니 한 때 구버전 비주얼스튜디오 자체 버그가 있어서 핫픽스를 통해 해결이 가능했던 것으로 보였다.
그러나 내가 사용하는 환경은 Visual Studio 2015 Community 최신 버전이었기 때문에 별 도움이 안 됐다.
다음과 같이 관련된 몇 개의 글이 있었지만 문제를 해결할 수 없었다.
https://github.com/nanomsg/nanomsg/issues/472
https://support.microsoft.com/en-us/kb/826326
같은 프로젝트를 Visual Studio 2010으로 빌드해보아도 동일한 실패 현상을 겪었다.
해결:
해당 프로젝트는 OpenCV를 사용하는 프로젝트였는데, 추가 라이브러리로 지정된 OpenCV 경로가 다른 하드디스크(E:\)로 되어있었다.
나중에 알고보니 하드디스크 케이블에 문제가 생겨서 읽기/쓰기가 정상적으로 이루어지지 않고 있었다.
때문에 링커에서 라이브러리에 연결을 시도해도 디스크가 응답하지 않아서 에러가 생겼던 것이다.
하드디스크 케이블을 다른 것으로 교체한 후 디스크 작동이 정상적으로 이루어지는 것을 확인한 다음 다시 빌드를 시도했더니
LNK1000 링크 에러가 생기던 문제가 말끔히 해결되었다.