PDA

Ver la Versión Completa : linea de comandos y bpl


juanmdq
25-01-2008, 12:34:27
Hola. Tengo un problemita con la compilación de programas desde la linea de comandos de delphi.
Para compilar un programa bien (cosa que ya probe) tengo que copiar todos *.bpl;*.dcu;*.dcp a un directorio predeterminado (c:\librerias) y con la linea
dcc32 -Q -B -H -Uc:\librerias proyecto.dpr
(funciona a la perfecto.)
Ahora bien, lo que estoy tratando de hacer y hasta el momento no pude es compilar sin tener que hacer esta copia de todos los archivos, que por la cantidad de librerias que tengo es muyyyyy pesada.
Las cosas que he ido probando y NO funcionaron son
- Al parametro -U agregarle luego todos los directorios que me figuran en la Library Path que figuran en las Enviroment Options/Library de Delphi.
- Crear un dcc32.cfg en la misma carpeta del proyecto que quiero compilar y ponerle todas las opciones del compilador ahi. Cada directorio en una sola linea. Ej
-U"c:\Libreria1"
-U"c:\Libreria2"
- Hacer lo mismo en el archivo .dof del proyecto

Por lo general cambian de mensaje, pero básicamente lo que no puede encontrar para compilar el proyecto son (no se bien) las bpl, las dcu o las dcp. El problema sería ver como hacer para que busque las librerias en mas de un directorio.

Si alguien puede ayudarme eternamente agradecido.

dec
25-01-2008, 12:43:54
Hola,

Puedes especificar varias rutas separándolas con un punto y coma.

juanmdq
25-01-2008, 12:46:06
Si, eso ya lo probe y no funca ... no me encuentra rtl.bpl
probe asi -Uc:\library1;c:\Library2
y asi -U"c:\library1;c:\Library2"

:rolleyes:

dec
25-01-2008, 13:05:52
Hola,

Se me hace extraño, puesto que yo uso en un archivo "bat" lo siguiente:


SET rutaDCC=C:\Archivos de programa\CodeGear\RAD Studio\5.0\bin\DCC32.exe
SET rutaCOM=.\codigo\componentes\Imaging\Source;.\codigo\componentes\Imaging\Source\JpegLib;.\codigo\com ponentes\Imaging\Source\ZLib;.\codigo\componentes\Imaging\Source\Extensions;.\codigo\componentes\Ima ging\Extras\Extensions;.\codigo\componentes\Imaging\Extras\Extensions\LibTiff
SET dccPRMS=-$D- -$L- -$Y- -$M- -B -I"%rutaCOM%" -U"%rutaCOM%"


Y funciona como se espera... Lo único diferente es que yo uso rutas "relativas" y tú absolutas, pero, fuera de esto, nada más...

juanmdq
25-01-2008, 13:15:13
Ahi lo probe. Quedo mas o menos asi :

SearchPath := Registry.ReadString('\Software\Borland\Delphi\7.0\Library\SearchPath', False);
SearchPath := StringReplace(SearchPath, '$(Delphi)', 'c:\Archivos de Programa\Borland\Delphi7', [rfReplaceAll]);
SearchPath := StringReplace(SearchPath, '$(ProgramFiles)', 'c:\Archivos de Programa', [rfReplaceAll]);
SetEnvironmentVariable('RUTACOM', PChar(Searchpath));
RunCommand('dcc32 -$D- -$L- -$Y- -$M- -B -I"%rutaCOM%" -U"%rutaCOM%" ' + dpr.Name);

Lamentablemente me sigue tirando el mismo problema de package rtl not found.

duilioisola
25-01-2008, 14:14:49
Mira estas dos páginas:

http://dcc32shell.tripod.com/

y

http://www.cublea.net/delphi/cfgmaker/

En esta segunda página ofrecen el código fuente para delpi 2 ...

Espero que te sea útil.

juanmdq
25-01-2008, 14:42:33
Bueno, ahi estuve probando pero le pasa exactamente lo mismo que a mi, es decir, si le agrego el listado de directorios tira que no encuentra rtl
en cambio si le pongo un solo directorio en donde copie todas las librerias funca bien...

igualmente muchas gracias

PD: Podra ser que es porque tengo muchisimos directorios de librerias ?

dec
25-01-2008, 14:51:33
Hola,

Tal vez tengan que ver los espacios en las rutas... ¿probaste entrecomillando cada una de las rutas? Separándolas con un punto y coma, pero, entrecomillándolas todas ellas. Si no fuera esto (que seguro que has probado ya) lo mismo el "problema" está por otro sitio y no vemos dónde...

juanmdq
25-01-2008, 15:44:18
Bueno, ahi empece a probar el programa en otras maquinas y anda perfecto ... en la única que no anda es en la mía :mad:. Asi que estoy investigando a ver que tienen de diferentes. (Los dcc32.cfg son iguales!)

Muchas Gracias a TODOS. Cualquier novedad que tenga sobre el tema lo posteo.

Para compilar: dcc32 -U"c:\Library1; c:\Library2" -LU"vcl;rtl" "dpr.name"