Поделиться через


Предупреждение компилятора (уровень 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".

Чтобы устранить проблему, используйте одни и те же параметры командной строки компилятора для модуля и используемого кода.