RAD Studio (Common)
F2051: Unit %s was compiled with a different version of %s.%s (Delphi)

This fatal error occurs when the declaration of symbol declared in the interface part of a unit has changed, and the compiler cannot recompile a unit that relies on this declaration because the source is not available to it. 

There are several possible solutions - recompile Unit1 (assuming you have the source code available), use an older version of Unit2 or change Unit2, or get a new version of Unit1 from whoever has the source code.  

This error can also occur when a unit in your project has the same name as a standard Delphi unit. 

For example, this may occur is when compiling a project written in a previous version of Delphi that did not have a unit of this name (for example, search.pas was not in Delphi 3). 

To solve the problem in this case:

  1. Open <Unit2> and save it with a new name.
  2. Alter all references to <Unit2> in uses clauses to refer to the new name.
  3. Delete the old <Unit2>.pas AND <Unit2>.dcu versions of this unit.
  4. Rebuild the project.

Copyright(C) 2009 Embarcadero Technologies, Inc. All Rights Reserved.
What do you think about this topic? Send feedback!