none
특정 .bat로 빌드하는데 C2220 에러가 발생합니다. VS가 필요한가요? RRS feed

  • 질문

  • 구형 윈도우 디바이스 드라이버를 추가 개발하고 있는데, 개발 환경을 추가로 만들고 시작해야 합니다.

    빌드하기 위해 아래와 같이 .Net Framework와 WDK 그리고 VS(Visual Studio)가 필요하다고 합니다.(아래 조건 참고)

    Below are the pre-requisites to build SPECIFIC driver code.
    - WDK( Version 7600.16385.1)
    - VS 2010 with SP1
    - .NET Framework 4 or later.

    현재 윈도우10 PC에 위 환경으로 설정(VS는 2015)하여 개발하려고 합니다.

    기존 설정환경은 윈도우7에 위 환경과 동일합니다.

    윈도우 XP부터 윈도우 7까지의 드라이버가 생성이 된다고 들었습니다.

    1) VS가 아닌 소스의 .bat 파일을 실행시켜서 빌드를 하는데요,(VS에서 빌드를 하지 않습니다.)

        다음과 같은 에러가 발생합니다.

    error C2220: warning treated as error - no 'object' file generated

        VS에서 환경설정을 뭔가 하거나 바꾸라고 하는데, 기존 개발환경은 그런 변경없이 되고 있습니다.

        해결방법이 없을까요? 

    2) 위의 .bat 파일을 이용해서 빌드하는데 이 경우 VS가 필요한지요?

    미리 답변주신 분들께 감사드립니다.

    2018년 10월 18일 목요일 오전 12:13

모든 응답

  • 저도 드라이버 개발은 제대로 해본 적이 없어서 딱히 많은 조언을 드릴 수는 없지만.

    일단, 오류 메시지로 봐서는 C/C++ 컴파일 "경고"가 발생한 것인데 빌드 옵션에서 "경고를 오류"로 처리하라는 옵션이 설정되어 있어서 그렇게 컴파일 에러로 처리되고 있는 것입니다. 즉, 컴파일 옵션에 /WX 플래그가 있는 것인데 이것을 없애거나 /W3와 같은 경우로 내리면 됩니다. 자세한 것은 다음의 도움말을 참고하세요.

    컴파일러 오류 C2220
    https://msdn.microsoft.com/ko-kr/library/ksk5k0ta.aspx

    (이런 현상은 대체로 예전 버전의 개발 환경에서 느슨하게 컴파일하던 것을, 버전이 올라가면서 보안이나 기타 성능 상의 이유로 컴파일 옵션을 그에 맞게 보완해 나가고 있기 때문에 발생합니다.)

    2018년 10월 18일 목요일 오전 12:45
  • 안녕하세요.

    위에서 WDK( Version 7600.16385.1) 의 버전 정보로 봐서는 Windows 7 용 WDK 을 사용하여 Windows XP 부터 Windows 7 용으로 드라이버를 빌드를 하려고 하는 것으로 보입니다.
    Windows 7 용 WDK 을 이용하여 빌드를 할 때에는 Windows 7 용 WDK가 자체적인 빌드 환경을 가지고 있기 때문에 따로 Visual Studio 가 필요하지는 않습니다.
    Visual Studio에서 WDK 을 지원하기 시작한 것은 Windows 8 부터인데, 예를 들어서 Windows 8 용 WDK 는 Visual Studio 2012 가 설치되어 있어야 합니다.

    아래의 문서를 보면, Windows 7 용 WDK 을 이용하여 빌드하는 방법이 비교적 상세히 설명되어 있습니다.
    보통 드라이버 폴더에는 .c 파일, sources 파일이 있으면 되는데, build.exe 을 이용하여 빌드를 할 수 있습니다. .bat 파일을 사용하여 빌드할 때에 오류가 발생한다고 하였는데, 이 파일의 내용이 무엇인지 확인을 하여 보시는게 좋을 것 같습니다.
    https://resources.infosecinstitute.com/windows-building-environment-for-kernel-driver-development/
    Windows Building Environment for Kernel Driver Development

    감사합니다.

    2018년 10월 18일 목요일 오전 7:17
  • 시간 내서 답변 주셔서 감사합니다.

    링크해 주신 내용의 방법을 적용하려면 결국 조정을 하려면 아랫분 답변처럼 관련 파일 내용을 조사해야 할 것 같습니다.

    감사합니다.

    2018년 10월 19일 금요일 오전 1:43
  • 해당 드라이버가 윈도우 8이나 10에서도 동작은 하고 있기 때문에, 위 내용처럼 VS가 있어야 할 수 있겠네요.

    링크 내용과 .bat 파일에 대해 좀 더 확인해 보겠습니다.

    시간 내서 답변 주셔서 감사합니다. 


    2018년 10월 19일 금요일 오전 1:53