Delphi 7 realiza quejas sobre archivos no encontrados
Pregunta
Tengo un archivo BPG que he modificado para usar como archivo de creación para el servidor de compilación automatizado de nuestra compañía. Para que funcionara tuve que cambiar
Uses * Uses unit1 in 'unit1.pas' * unit1 unit2 in 'unit2.pas' * unit2 ... * ...
en el archivo DPR para que funcione sin que el compilador me ofrezca algunas dudas sobre unit1.pas no encontrado. Esto es molesto porque quiero usar un archivo BPG para ver las cosas en mi proyecto y cada vez que agrego una nueva unidad, se auto-jacks que en 'unitx.pas' en mi archivo DPR.
Estoy ejecutando make -f [entonces algunas opciones]
, los DPR que estoy compilando no están en el mismo directorio que el archivo make, pero no estoy seguro de que esto importe . Todo se compila bien siempre que se elimine el en 'unit1.pas
.
Solución
Podría deberse al hecho de que la ruta de búsqueda en el IDE y la ruta de búsqueda del compilador de línea de comandos no son las mismas. Si cambia la ruta de serach del compilador de la línea de comandos, es posible que pueda utilizar exactamente el mismo código fuente que el IDE.
Una posibilidad para configurar la ruta de búsqueda para el compilador de línea de comandos es hacerlo en un archivo llamado dcc32.cfg. Eche un vistazo a la ayuda, hay una breve descripción de dcc32.cfg en la ayuda del IDE.
Otros consejos
Bueno, este trabajo funcionó para mí.
//{$define PACKAGE} {$ifdef PACKAGE} uses unit1 in 'unit1.pas' unit2 in 'unit2.pas' ... {$else} uses unit1 unit2 ... {$endif}
El único problema es que cuando agrega una nueva unidad, Delphi borra su ifdef package
en la parte superior.
Cada vez que tengo que poner condicionales en un archivo de proyecto hago esto:
program a;
uses
ACondUnits;
...
unit ACondUnits;
interface
uses
{$IFDEF UseD7MM}
Delphi7MM;
{$ELSE}
FastMM4;
{$ENDIF}
implementation
end.
Quizás este truco también funcione en paquetes. Nunca lo he intentado.