Frage

Ich habe eine BPG-Datei, die ich geändert hat als Make-Datei für unser Unternehmen automatisierten Build-Server zu verwenden. Um ich hatte, um es zu ändern, zu arbeiten

Uses                       *  Uses
  unit1 in 'unit1.pas'     *   unit1
  unit2 in 'unit2.pas'     *   unit2
   ...                     *    ...

in der DPR-Datei zu erhalten, ohne die Compiler zu arbeiten, um mir einige guff über unit1.pas nicht gefunden zu geben. Das ist ärgerlich, weil ich eine BPG-Datei verwenden mag, um tatsächlich das Zeug in meinem Projekt zu sehen und jedes Mal, wenn ich ein neues Gerät hinzufügen, es Auto-Buchsen, die in ‚unitx.pas‘ in meine DPR-Datei.

Ich bin mit make -f [then some options], die der DVR, dass wir kompilieren sind nicht im selben Verzeichnis wie die Make-Datei, aber ich bin nicht sicher, dass dies wichtig ist. Alles kompiliert in Ordnung, solange die in 'unit1.pas entfernt wird.

War es hilfreich?

Lösung

Es könnte aus der Tatsache kommt, dass der Suchpfad in der IDE und der Suchpfad der Befehlszeilen-Compiler ist nicht das gleiche. Wenn Sie den serach Pfad der Compiler-Befehlszeile ändern könnten Sie die exactely gleichen Quellcode wie in den IDE verwenden können.

Eine Möglichkeit, den Suchpfad für die Kommandozeilen-Compiler zu konfigurieren, ist es in einer Datei DCC32.CFG genannt zu tun. Werfen Sie einen Blick auf die Hilfe, gibt es eine kurze Beschreibung von DCC32.CFG in der IDE-Hilfe.

Andere Tipps

Gut, das Work-around für mich gearbeitet.

//{$define PACKAGE}
{$ifdef PACKAGE}
 uses 
  unit1 in 'unit1.pas'
  unit2 in 'unit2.pas'
   ... 
{$else}
 uses 
  unit1 
  unit2
   ...
{$endif}

Das einzige Problem ist, wenn Sie ein neues Gerät hinzufügen, delphi Ihre ifdef package an der Spitze löscht.

Jedes Mal, ich habe conditionals in eine Projektdatei habe ich dies tun:

program a;

uses
  ACondUnits;

...


unit ACondUnits;

interface

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

implementation

end.

Vielleicht ist dieser Trick auch in Paketen arbeitet. Nie genommen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top