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 .

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top