증상: 


잘 사용하고 있던 프로젝트가 어느 순간 갑자기 링크 에러로 빌드가 실패했다.


컴파일이 끝난 후 링킹 과정에서 한참 동안 응답이 없기 때문에 문제 파악이 힘들었다.


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 링크 에러가 생기던 문제가 말끔히 해결되었다.

Posted by Kugi
,