2012-04-10 37 views
0

私はDelphi 2プロジェクトをRAD Studio XE2に移行しています。F2051ユニットJclUnitVersioningが異なるバージョンのSystem.Contnrs.TObjectList.Removeでコンパイルされました

私は

[DCC致命的なエラー] MyUnit.pasを取得コンパイルしようとする(9):F2051ユニットJclUnitVersioningがSystem.Contnrs.TObjectList.Remove

の異なるバージョンでコンパイルされました次の行で

unit MyUnit; 

interface 

uses 
    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, 
    StdCtrls, DB, DBTables, TB97, ExtCtrls, Grids, DBGrids, Vcl.Mask, JvExMask, 
    Vcl.DBLookup, 
    JvToolEdit, {<-- error here} 
    TB97Ctls; 

{...} 

私はRAD Studioの、JCLおよびJVCLをアンインストールし、再インストールしてみましたが、何も変わりません。

更新バイナリJedi installer from A.Hausladenを使用していました(Delphiトライアル版での使用を想定)。

+1

'Project/Options'メニュー項目に行きます。 Project Optionsダイアログで、 'Search Path'セクションに適切なパスが設定されていることを確認し、以前のJCLインストールでフォルダに指示するものがある場合は削除して、プロジェクトを再構築してみてください。そのセクションでそのようなディレクトリが見つからない場合は、 'View/Project Manager'に行き、プロジェクト項目を右クリックして' Clean'と 'Build'を試してみてください。 – TLama

+0

あなたはまだアンインストールして再インストールするだけではクリーンアップされなかったということを抱いています。アンインストールでDelphiの現在のユーザーのレジストリ設定がクリアされたり、ハードドライブがフォーマットされたりしなかったため、JCLという名前のDCUファイルがどこかにある可能性があります。ここには、より多くの「状態」があります。私の答えを見てください。ドライブで 'JclUnitVersioning.dcu'のコピーを探します。 –

答えて

1

古いDCUファイルがあるため、再構築や削除、またはプロジェクトやライブラリパスの内容が一貫していません。 (適切なJCLライブラリフォルダにないJclUnitVersioning.dcuという名前のファイルを検索し、それらを削除します。適切なライブラリフォルダがjcl\lib\d7という名前が付けられ、jcl\lib\d16を通じて、あなたのデルファイバージョン番号によって異なります)

これは通常、プロジェクトがアクセス権を持っていることを意味し事前にコンパイルされたDCUファイルを含み、いくつかのソースユニット(.pasファイル)にアクセスできるライブラリパスまたはプロジェクト検索パスにあるディレクトリと、依存するユニットの1つまたは複数他のユニットは、現在とは異なる時に、複数のバージョンの共通ユニットでコンパイルされました。私はあなたに絵を描くことができたらいいと思う。

あなたは車を持っていて、誰かがエンジンをアップグレードしてV6からV8に変更したとします。以前はエンジンを修理していた人が戻ってきて、V6の排気マニホールドが取り付けられている場所を探します。これ以上はなく、動いている。新しいエンジンは現在の形で凍っているので(あなたと一緒にいてください!)、サービス技術者はあなた(顧客)に戻り、「申し訳ありませんが、私は混乱し続けます。 "これはおおよそこのエラーメッセージの意味です。

いくつかの点で清掃が可能です。 .pasファイルから100%をコンパイルし、.dcuファイルを含むライブラリフォルダがまったくないことを確認するのは簡単なことです。もちろん、これはほとんど理想的ではありません。ライブラリパスの目的は、コンパイル済みのDCUファイルの「ライブラリ」を格納することだったからです。

代わりに、クリーンアップ(すべてのDCUファイルを削除)し、すべてのコンポーネントパッケージをソースから再構築することをお勧めします(その目的のためのバッチファイルがありますか?)、プロジェクトの検索パス、ライブラリパスには、両方とも含まれるべきだと思うフォルダだけが含まれていることがわかります。

+0

素晴らしい!私は思っていたので、[これらのインストーラ](http://andy.jgknet.de/blog/2011/11/updated-jcl-and-jvcl-binary-installers-for-xe2-2/)でJCLとJVCLをインストールしました彼らは私が持っていた問題を解決していたかもしれませんが、別のバージョンのIDEでコンパイルした場所やインストーラがIDEでソースをコンパイルせずに単にDCUをコピーしただけでした。どうもありがとう! – bluish

+2

バイナリインストーラは、TRIAL版のDelphiのみのユーザ向けです。 (あなたが掲示したリンクには、それがはっきりと示されています!)あなたがそれを解決したことをうれしく思います。しかし、将来、奇妙なインストーラを使用した場合は、その質問では、正規のインストーラを使用したと仮定します。 –

1

Delphi 2010とXE3(同じPCで移行中)で同じ問題が発生しました。

私のプロジェクトとJCLプロジェクト(私のPC上のインストーラのバットファイルエラー)を数時間再コンパイルすると、tools/options/Delphiオプション/ライブラリでディレクトリが宣言された順序が問題であることがわかりました。

バージョン固有のディレクトリ(lib \ D14、lib \ D17 \ Win32など)を追加してから、JCLを使用するプロジェクトが構築されるまでの間に1つずつ追加する必要があります。

関連する問題