Delphi 7 se plaint des fichiers non trouvés
Question
J'ai modifié un fichier BPG afin de l'utiliser comme fichier de création pour le serveur de génération automatisé de notre société. Pour le faire fonctionner, je devais changer
Uses * Uses unit1 in 'unit1.pas' * unit1 unit2 in 'unit2.pas' * unit2 ... * ...
dans le fichier DPR pour que cela fonctionne sans que le compilateur me donne des explications sur unit1.pas introuvable. C’est ennuyeux parce que je veux utiliser un fichier BPG pour voir les éléments de mon projet et chaque fois que j’ajoute une nouvelle unité, les jacks automatiques qui se trouvent dans 'unitx.pas' dans mon fichier DPR.
J'exécute make -f [puis quelques options]
, les DPR que je compile ne se trouvent pas dans le même répertoire que le fichier make, mais je ne suis pas certain que cela soit important . Tout se compile bien tant que le dans 'unit1.pas
est supprimé.
La solution
Cela pourrait provenir du fait que le chemin de recherche dans l'EDI et le chemin de recherche du compilateur en ligne de commande ne sont pas les mêmes. Si vous modifiez le chemin de recherche du compilateur en ligne de commande, vous pourrez peut-être utiliser exactement le même code source que dans l'EDI.
Une possibilité pour configurer le chemin de recherche du compilateur de ligne de commande consiste à le faire dans un fichier appelé dcc32.cfg. Jetez un coup d’œil à l’aide, il existe une brève description de dcc32.cfg dans l’IDE-help.
Autres conseils
Eh bien, cette solution a fonctionné pour moi.
//{$define PACKAGE} {$ifdef PACKAGE} uses unit1 in 'unit1.pas' unit2 in 'unit2.pas' ... {$else} uses unit1 unit2 ... {$endif}
Le seul problème est que chaque fois que vous ajoutez une nouvelle unité, Delphi efface votre paquetage ifdef
en haut.
Chaque fois que je dois mettre des conditions dans un fichier de projet, je le fais:
program a;
uses
ACondUnits;
...
unit ACondUnits;
interface
uses
{$IFDEF UseD7MM}
Delphi7MM;
{$ELSE}
FastMM4;
{$ENDIF}
implementation
end.
Peut-être que cette astuce fonctionne aussi dans les packages. Jamais essayé.