14

A、B、および C の 3 つのパッケージをビルドしようとしています。A は、B および C で使用されるいくつかの基本クラスを定義します。3 つすべてを同じプロジェクト グループに入れ、すべて同じに出力するように設定しました。カスタム BPL 出力フォルダー。このフォルダーは、B と C の検索パスにあります。しかし、B と C をビルドしようとすると、コンパイラーが Requires リストでチョークします。「必要なパッケージ 'A' が見つかりません。」

B と C が正しくビルドできるように、A の場所を B と C に伝えるにはどうすればよいですか?

4

5 に答える 5

15

パッケージが見つからないか、コンパイラが混乱しています。後者の場合、再起動が役立つ場合があります。次に、すべてのパッケージから順番に手動でビルドします。

本当に見つからない場合は、すべてのパッケージ(bplおよびdcp)とdcuファイルが使用可能かどうかを確認してください。両方が必要です。

于 2009-04-18T19:41:20.800 に答える
9

IDEがパッケージをロードしようとしているときにこれが発生した場合:パッケージ出力ディレクトリ(* .bplファイルが格納される場所)は、システムのPATH環境変数上にある必要があります。パッケージは静的にリンクされたDLLであり、Windowsはそれらをロードするためにそれらを見つけることができなければなりません。

パッケージのビルド時にこれが発生した場合:コンパイラがコンパイルされたパッケージを見つけることができるように、DCP出力ディレクトリ(* .dcpファイルが配置される場所)のいずれか/すべてが依存プロジェクトの検索パスにある必要があります。パッケージプロジェクトのDCP出力ディレクトリを空のままにすることもできます。この場合、Tools \ Options\Libraryに設定されているグローバルDCP出力ディレクトリが使用されます。依存するプロジェクトは、検索パスにそれを含める必要はありません。

于 2009-04-18T19:55:34.323 に答える
2

コンパイルしようとしているパッケージの 'requires' 句で、必要なパッケージの名前が正しく指定されていない可能性があります。例を見てみましょう:

VirtualTreesR.dpk と VirtualTreesD.dpk の 2 つのパッケージがあります。VirtualTreesD には VirtualTreesR が必要です。どちらも「16」という接尾辞が付いているため、どちらも Delphi プロジェクト マネージャ ウィンドウに VirtualTreesR16.bpl および VirtualTreesD16.bpl として表示されます。これらはパッケージの名前だと思うかもしれませんが、あなたは間違っています。パッケージの名前は、VirtualTreesR16 と VirtualTreesD16 ではなく、引き続き VirtualTreesR と VirtualTreesD です。

VirtualTreesR.dpk がコンパイルされると、Delphi は VirtualTreesR* 16 *.bpl と VirtualTreesR.dcp の2 つのファイルを生成します (ここでは DCU については説明しません) 。違いを見ます?

次に、VirtualTreesD.dpk をコンパイルしようとすると、「[DCC Fatal Error] VirtualTreesD.dpk(35): E2202 Required package 'VirtualTreesR16' not found」というエラーが発生します。

このエラーは、VirtualTreesD.dpk パッケージの「requires」句に次の行が含まれているために発生します。


    requires
      designide,
      VirtualTreesR16;

Delphi は VirtualTreesR16.dcp を見つけようとしますが、Delphi 検索パスと PATH 環境変数が正しく設定されていても、VirtualTreesR16.dcp がないため失敗します。VirtualTreesR.dcp のみ。

解決策は、「requires」句を修正して、以下のようにすることです。


    requires
      designide,
      VirtualTreesR;

それが役に立てば幸い。

PS この名前の不一致は明らかではなく、そのフラグメントはさまざまな設定に散らばっているため、これは非常にイライラする問題です。Delphi は、検索しようとしたファイルを正確に指定すると、より具体的になる可能性があります(たとえば、「VirtualTreesR」ではなく「VirtualTreesR.dcp」)。

于 2013-04-03T08:51:05.007 に答える
1

パッケージの .dcp ファイルをどこに書いているかを確認します。これを取得したら、各パッケージの検索パスに .dcp 出力フォルダーのエントリがあることを確認します。

于 2009-04-18T19:45:54.597 に答える