Domanda

Ho un file BPG che ho modificato per usarlo come file make per il server di build automatizzato della nostra azienda. Per farlo funzionare ho dovuto cambiare

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

nel file DPR per farlo funzionare senza che il compilatore mi dia qualche errore su unit1.pas non trovato. Questo è fastidioso perché voglio usare un file BPG per vedere effettivamente le cose nel mio progetto e ogni volta che aggiungo una nuova unità, si auto-jack che in 'unitx.pas' nel mio file DPR.

Sto eseguendo make -f [then some options] , i DPR che sto compilando non si trovano nella stessa directory del file make, ma non sono sicuro che questo sia importante . Tutto viene compilato correttamente fintanto che in 'unit1.pas viene rimosso.

È stato utile?

Soluzione

Potrebbe derivare dal fatto che il percorso di ricerca nell'IDE e il percorso di ricerca del compilatore della riga di comando non sono gli stessi. Se modifichi il percorso serach del compilatore della riga di comando, potresti essere in grado di utilizzare esattamente lo stesso codice sorgente dell'IDE.

Una possibilità per configurare il percorso di ricerca per il compilatore della riga di comando è di farlo in un file chiamato dcc32.cfg. Dai un'occhiata alla guida, c'è una breve descrizione di dcc32.cfg nella guida IDE.

Altri suggerimenti

Bene, questa soluzione ha funzionato per me.

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

L'unico problema è ogni volta che aggiungi una nuova unità, delphi cancella il tuo pacchetto ifdef in alto.

Ogni volta che devo mettere i condizionali in un file di progetto lo faccio:

program a;

uses
  ACondUnits;

...

unit ACondUnits;

interface

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

implementation

end.

Forse questo trucco funziona anche in pacchetti. Mai provato.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top