Delphi Compiler Error
F2051 Unit %s was compiled with a different version of %s.%s
Reason for the Error & Solution
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:
- Open <Unit2> and save it with a new name.
- Alter all references to <Unit2> in uses clauses to refer to the new name.
- Delete the old <Unit2>.pas AND <Unit2>.dcu versions of this unit.
- Rebuild the project.