F2051 ユニット %s は異なるバージョン %s.%s によりコンパイルされています (Delphi)
エラーと警告のメッセージ(Delphi) への移動
この致命的なエラーはユニットのインターフェース部にあるシンボル宣言を変更した場合に,その宣言に依存するユニットのソースがその宣言を使用できなくなって再コンパイルできないときに起きます。
この問題にはいくつかの解決方法があります。1) Unit1 を再コンパイルする(ソースコードを持っていることが前提),2) Unit2 の古いバージョンを使用するか Unit2 を変更する,3) ソースコードを持っている人から Unit1 の新しいバージョンを手に入れる。
プロジェクト内のユニットが Kylix の標準ユニットと同じ名前を持っている場合にも,このエラーが発生します。
たとえば,この名前のユニットを持っていない旧バージョンの Delphi で記述されたプロジェクトをコンパイルしたときに,このエラーが発生します(たとえば,Delphi 3 に search.pas はない)。
この場合,次の手順で問題を解決してください。
- <Unit2> を開いて,新しい名前で保存します。
- uses 節の <Unit2> への参照を,すべて新しい名前への参照に変更します。
- このユニットの古いバージョンの <Unit2>.pas および <Unit2>.dcu を削除します。
- プロジェクトを再構築します。