반응형
Visual Studio 2015에서 부터 프로젝트 및 솔루션 형식 및 플랫폼 집합 도구의 형식이 호환되어 특정 환경에 대해서 편하게 빌드를 할 수 있는 환경으로 변경되었습니다.
다만, 유독 Visual Studio 2015/2017/2019에서 WDK 8.0 그러니까 WindowsKernelModeDriver8.0으로 플랫폼 도구 집합으로 컴파일하면 오류가 발생합니다.
플랫폼 도구 집합을 "WindowsKernelModeDriver8.0"로 설정 후 빌드하면 다음과 같은 메시지가 출력창에 표시됩니다.
1>------ 모두 다시 빌드 시작: 프로젝트: testdrv, 구성: Win8 Debug x64 ------
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.CppCommon.targets(347,5): error MSB6004: 지정한 작업 실행 파일의 위치 "C:\Program Files (x86)\Windows Kits\8.0\bin\x86\x64\CL.exe"이(가) 잘못되었습니다.
1>"testdrv.vcxproj" 프로젝트를 빌드했습니다. - 실패
========== 모두 다시 빌드: 성공 0, 실패 1, 생략 0 ==========
분명히 VisualStudio 2019를 설치하기전에 VisualStudio 2012를 설치하고 WDK 8.0을 설치하였음에도 불구하고 "CL.exe"를 찾을 수 없다는 오류 메시지 입니다. 해당 폴더에 가보면 "CL.exe"파일이 존재하지 않습니다.
여기 저기 관련 내용을 찾아보았으나 어디에도 나와있지 않습니다. 그러나 결국 Microsoft에서 해당 오류에 대한 해결책을 발견했습니다.
내용을 보면 황당하지만 왜 MS에서 이러한 오류를 자동으로 고쳐주지 않았을까 하는 것이 의문입니다.
오류 수정 절차는 다음과 같습니다.
- C:\Program Files (x86)\Windows Kits\8.0\build 디렉터리로 이동합니다.
- WindowsDriver8.0.x64.props 파일을 엽니다.
- "'$(VisualStudioVersion)' != '11.0'" 문구를 찾습니다.
- "!=" 를 "<"로 변경합니다.( "!=" 를 "<"로 변경) 2군데가 있으니 모두 변경합니다.
- 파일을 저장합니다.
- WindowsDriver8.0.Win32.props 파일도 동일하게 변경합니다.
이와 같이 props 파일을 변경한다음에 다시 컴파일하면 컴파일이 잘 됩니다.
해당 해결책이 있는 URL도 같이 공유합니다.
반응형