1

弊社の自動ビルドサーバーのmakeファイルとして使用するために変更したBPGファイルがあります。それを機能させるために私は変更しなければなりませんでした

用途*用途
  'unit1.pas'のunit1*unit1
  'unit2.pas'のunit2*unit2
   ...*..。

DPRファイルで、コンパイラがunit1.pasが見つからないことについてのガフを与えずに動作させるために。BPGファイルを使用してプロジェクト内のものを実際に確認したいので、これは面倒です。新しいユニットを追加するたびに、「unitx.pas」内のユニットがDPRファイルに自動ジャックされます。

私が実行make -f [then some options]している、コンパイルしているDPRは、makeファイルと同じディレクトリにありませんが、これが重要かどうかはわかりません。が削除されている限り、すべてが正常にコンパイルin 'unit1.pasされます。

4

3 に答える 3

2

これは、IDE の検索パスとコマンド ライン コンパイラの検索パスが同じでないことが原因である可能性があります。コマンド ライン コンパイラの検索パスを変更すると、IDE 内とまったく同じソース コードを使用できる場合があります。

コマンドライン コンパイラの検索パスを構成する 1 つの可能性は、dcc32.cfg というファイルで構成することです。ヘルプを見てください。IDE ヘルプに dcc32.cfg の簡単な説明があります。

于 2008-09-25T09:25:06.660 に答える
1

この回避策は私にとってはうまくいきました。

// {$ define PACKAGE}
{$ifdefパッケージ}
 使用
  'unit1.pas'のunit1
  'unit2.pas'のunit2
   ..。
{$ else}
 使用
  ユニット1
  ユニット2
   ..。
{$ endif}

唯一の問題は、新しいユニットを追加するたびに、delphiがifdef package上部のユニットを消去することです。

于 2008-09-25T04:48:37.277 に答える
0

条件をプロジェクト ファイルに入れる必要があるたびに、次のようにします。

program a;

uses
  ACondUnits;

...


unit ACondUnits;

interface

uses
{$IFDEF UseD7MM}
  Delphi7MM;
{$ELSE}
  FastMM4;
{$ENDIF}

implementation

end.

たぶん、このトリックはパッケージでも機能します。したことがない。

于 2008-09-25T07:27:21.203 に答える