카테고리 없음

[Debug]MSB6006 문제 종료 코드 2

해달 2017. 11. 1. 16:07

열심히 코딩을 하고 빌드를 누르는데, 여느 때처럼(?) 빌드가 잘 되지 않았다.

헌데, 이번에는 진짜 한번도 못 봤던 에러였다.


>------ 빌드 시작: 프로젝트: FirstStep, 구성: Debug Win32 ------
1>  TRACKER : 오류 TRK0005: "CL.exe"을(를) 찾지 못했습니다. 지정된 파일을 찾을 수 없습니다.
1>
1>
1>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(253,5): error MSB6006: "CL.exe"이(가) 종료되었습니다(코드: 5).
========== 빌드: 성공 0, 실패 1, 최신 0, 생략 0 ==========

대략 이런 오류였다. (현재 repair중이라 내 것을 복사할 수가 없어 다른 분걸 복사해왔다)


MSDN에서 찾아보니 유사한 문제가 미국 MSDN에서도 질의되고 답변 되어 있다고 한다. CL.exe는 VS의 컴파일러이며, 이 파일이 존재한다면 설치 프로그램으로 복구하면 되고, 존재하지 않는다면 재설치를 하라고 한다. CL.exe는 Windows10 64bt 기준 C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin에 존재한다고 한다.


...평소 VS를 이용해서 모든걸 코딩한지라 갑작스럽게 할일들을 할 수가 없게 되어버렸다. 다른거 해야겠다 ㅜ...


---


기나긴 시간을 거쳐 복구를 했으나 문제가 해결되지 않았다. 지금 보니 종료 코드도 다르다! 위에는 5인데 나는 2였던 것이었다.


1>------ 빌드 시작: 프로젝트: API_Game, 구성: Debug Win32 ------

1>빌드 시작: 2017-11-01 오후 6:00:27

1>     1>

1>InitializeBuildStatus:

1>         "AlwaysCreate"이(가) 지정되었기 때문에 "Debug\API_Game.tlog\unsuccessfulbuild"을(를) 만들고 있습니다.

1>       ClCompile:

1>         main.cpp

1>         'C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\CL.exe'에서 내부 컴파일러 오류

1>             자세한 내용을 보려면 Visual C++ [도움말] 메뉴에서

1>          [기술 지원] 명령을 선택하거나 기술 지원 도움말 파일을 참조하십시오.

1>     1>

1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(356,5): error MSB6006: "CL.exe"이(가) 종료되었습니다(코드: 2).

1>

1>빌드하지 못했습니다.

1>

1>경과 시간: 00:00:02.27

========== 빌드: 성공 0, 실패 1, 최신 0, 생략 0 ==========


럴수가. 종료 코드 2번으로 검색해보니 환경 변수 관련 문제일거라고 한다. 하지만 나는 그럴리는 없다고 생각했다. 코드를 수정하기 전에도 잘 돌아가던 건데 갑자기 환경 변수가 꼬일리는 없잖은가. 혹시 헤더 이름을 system으로 지어서 그런걸까 싶어서 헤더 이름도 바꿔 보았지만 전혀 아니었다.

헌데, 문제를 알아버렸다. initializer_list의 문제 였다.
다음과 같은 코드가 있었다.

BYTE* pMem = new BYTE[800 * 600 * 4]{ 0 };

원래는 malloc을 한 후, memset을 이용하는 건데, 번거롭게 왜 두 줄에 나눠야되나 싶어서 한 줄에 적었다. 그랬더니 저 오류를 내뱉은 것이었다. 정확한 원인은 모르겠다. 혹시 너무 큰 메모리에 uniform initialization을 적용하면 터지는 건가 싶어서 간단하게 테스트 해보았으나 정말 잘 돌아갔다;;


..왜 일까....-_-;; 어쨌든 해결 완료!