컴파일러 경고(수준 1) C5050
'module_name' 모듈을 가져오는 동안 가능한 호환되지 않는 환경: 문제
설명
모듈에 대한 명령줄 옵션이 모듈 생성과 모듈 사용 측면 간에 일치하지 않을 때마다 컴파일러가 C5050을 발생합니다.
이 경고는 Visual Studio 2017 버전 15.9의 새로운 기능입니다. 컴파일러 옵션으로 지정된 모듈을 만들거나 사용하는 경우에만 생성됩니다 /experimental:module
.
예시
다음 예제에서는 두 가지 문제가 있습니다.
사용 쪽(main.cpp)에서
/EHsc
옵션을 지정하지 않았습니다.C++ 버전이 생성 쪽에서는
/std:c++17
이고, 사용 쪽에서는/std:c++14
입니다.
cl /EHsc /std:c++17 m.ixx /experimental:module
cl /experimental:module /module:reference m.ifc main.cpp /std:c++14
컴파일러는 두 경우 모두에 대해 C5050을 생성합니다.
warning C5050: Possible incompatible environment while
importing module 'm': mismatched C++ versions.
Current "201402" module version "201703".
이 문제를 해결하려면 모듈과 사용 코드 모두에 대해 동일한 컴파일러 명령줄 옵션을 사용합니다.