Delphi 7 si lamenta per i file non trovati
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.
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.