2

さまざまなベンダーのいくつかのコンポーネントパッケージを使用しており、そのうちの2つには、ディレクトリ構造内で使用可能な「regexp.pas」ユニットがあります。

ここでの問題は、コンパイルする順序に関係なく、ユニットの1つが、他のさまざまなユニットの間違ったバージョンでコンパイルされていることについて不平を言うことです。

これを正しく処理する方法はありますか?

4

3 に答える 3

8

ユニットが静的にリンクされているか、パッケージを介して動的にリンクされているかに関係なく、完全にリンクされロードされたDelphi実行可能ファイルで2つのユニットに同じ名前を付けることはできません。結論として、どちらか一方の名前を変更する必要があります。

于 2009-05-20T12:49:00.733 に答える
4
  1. そのユニットのバージョンが1つしかないことを確認する必要があります
  2. (両方のベンダーの)すべてのdcuを削除して、すべてのソースの再コンパイルを強制します。
  3. 2つのベンダーのパッケージを完全にアンインストールします(それぞれの痕跡がすべて削除されていることを確認してください)
  4. 一度に1つずつ再コンパイルしてインストールします。
于 2009-05-20T11:59:54.093 に答える
0

この回避策を使用できます。

既に述べたように、両方のベンダー パッケージを一緒に IDE にロードすることはできません。

ただし、一度に 1 つずつ必要な場合は、 「-r」コマンド ライン スイッチを使用して 2 つの異なる IDE プロファイルを起動し、各プロファイルにカスタム名を付けることができます。次に、最初のプロファイルを使用して Delphi を起動し、2 つの「競合する」パッケージの最初のパッケージをインストールし、IDE を閉じて 2 番目のプロファイルで Delphi を実行し、もう 1 つのパッケージをインストールします。

各プロファイルのショートカットを作成し、特定のプロジェクトを管理するために必要なパッケージをロードするプロファイルを選択して Delphi を実行します。

よろしく、~/|/|アルコ。

于 2009-05-21T17:22:46.573 に答える