F2051: Unit %s was compiled with a different version of '%s'. Delphi error

This is a Delphi error occurs when interface part of a unit has been changed and the compiler cannot compile another unit which relies on above unit because the source is not available or not valid. Some errors we got. F2051 Unit System.SysUtils was compiled with a different version of "".GetMappedFileName F2051 Unit JclUnitVersioning was compiled with a different version of System.Contnrs.TObjectList.Remove F2051 Unit webMail was compiled with a different version of ucCodeSiteInterface F2051 Unit ExtActns was compiled with a different version of UrlMin.IbindStatusCallBack F2051 Unit cxClasses was compiled with a different version of Forms.TCustomForm.SetWindowState F2051 Unit Data.DBXCommon was compiled with a different version of System.JSON.TJSONObject For example When we have a situation like below where Unit A uses both unit B and unit C and Unit B uses C. Unit B and C are compiled and for some reason the source of unit ...