编译器警告(等级 1)C5050
导入模块“module_name”时可能不兼容的环境:issue
备注
每当模块的命令行选项在模块创建端和模块使用端之间不一致时,编译器就会引发 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".
若要解决此问题,请对模块和所使用的代码都使用相同的编译器命令行选项。