3

Delphi 2010 プロジェクトのいずれかのインクリメンタル コンパイル (ctrl-F9) を実行するたびに、プロジェクトで参照されているすべての JEDI ユニットが、まったく変更されていないにもかかわらず再コンパイルされていることに気付きました。実際、新しいプロジェクトを作成し、JEDI コントロールをフォームにドロップしてコンパイルすると、すべての JEDI 依存関係が再コンパイルされます。プロジェクトに変更を加えずに ctrl-F9 をもう一度押したとしたら、同じことが起こります。

誰がこれを引き起こしているのか知っていますか?

更新:この問題は、システムのサブディレクトリ jvcl\run に関連しているようです。このフォルダー内のすべてのユニットは、Delphi コンパイルを行うたびに再コンパイルされます (プロジェクト ソースに触れなくても)。コンパイル済みの dcus が jvcl\lib\d14 に既に存在している場合でも、コンパイルされた dcus は、コンパイルのたびにこのサブディレクトリに取得され、残されます。ライブラリ パスに jvcl\run がありません。

さらに、jvcl\run ディレクトリをハードディスクの別の場所に移動すると、プロジェクトは正常にコンパイルおよびリンクされ、おそらく jvcl\lib\d14 (パス上) で dcus が検出されます。

4

2 に答える 2

1

設定で「jvcl\run」パスを確認する場所がいくつかあります。

最初の二つ:

  • ツール|オプション
  • 環境オプション|Delphi オプション|ライブラリ-Win32
    • (1)「ライブラリパス:」エディットボックス
    • (2) 「Debug DCU Path:」エディットボックス

3 つ目は次のとおりです。

プロジェクトを開く

  • プロジェクト | プロジェクト | オプション
  • ディレクトリ/条件
  • (3) 検索パス: エディットボックス

最後に、コマンド ライン経由でコンパイルする場合は、DCC32.CFG および/または PROJECTNAME.CFG で何を渡しているか、および DCCC32 へのコマンド ライン パラメータを確認する必要があります。

コンパイルされた DCU がソースがあるディレクトリに配置される理由は、「ユニット出力ディレクトリ」を設定していないためです。

于 2010-05-12T23:59:19.190 に答える
1

再コンパイルされていない場合でも、コンパイルの進行状況画面でユニット名が点滅することがあります。

確実に知るには、コンパイル前後の Jedi DCU の日付を確認してください。

また、どのように Jedi コントロールをインストールしましたか? デフォルトのインストーラーを使用する場合、それらはコンパイルされません (インストール時にコンパイルされます)。すべてのソースをライブラリ パスにドロップした場合、ビルド時に、または変更された場合 (およびその他のさまざまな条件) に再コンパイルされます。

于 2010-03-19T16:25:06.543 に答える