Bagikan melalui


Peringatan Pengompilasi (level 1) C5050

Kemungkinan lingkungan yang tidak kompatibel saat mengimpor modul 'module_name': masalah

Keterangan

Pengkompilasi meningkatkan C5050 setiap kali opsi baris perintah untuk modul tidak konsisten antara sisi pembuatan modul dan konsumsi modul.

Peringatan ini baru di Visual Studio 2017 versi 15.9. Ini hanya dihasilkan saat membuat atau mengkonsumsi modul, yang ditentukan oleh /experimental:module opsi pengkompilasi.

Contoh

Dalam contoh berikut, ada dua sertifikat.

  • Di sisi konsumsi (main.cpp), opsi /EHsc tidak ditentukan.

  • Versi C++ adalah /std:c++17 di sisi pembuatan, dan /std:c++14 di sisi konsumsi.

cl /EHsc /std:c++17 m.ixx /experimental:module
cl /experimental:module /module:reference m.ifc main.cpp /std:c++14

Pengompilasi meningkatkan C5050 untuk kedua kasus ini:

warning C5050: Possible incompatible environment while
importing module 'm': mismatched C++ versions.
Current "201402" module version "201703".

Untuk mengatasi masalah ini, gunakan opsi baris perintah pengkompilasi yang sama untuk modul dan kode yang mengkonsumsi.