Array
(
)

Compilar manualmente com DCC32

Miudo
   - 15 fev 2006

Olá pessoal,
estou tentando compilar um código usando o dcc32.exe mas acontece
alguns erros que ainda não consigo resolver

o objetivo é fazer um programa que compile automaticamente alguns
programas

alguem pode colocar um exemplo

ficaria muito agradecido


Rcasistemas
|
MVP
    15 fev 2006

Kara, eu fiz um teste, da seguinte maneira:
#Código


[b]c:\arquivos de programas\borland\delphi\bin>[/b] dcc32 biblioteca.pas


e tudo ocorreu normalmente, gerando um arquivo biblioteca.dcu

qual eh o seu problema??


Miudo
   - 15 fev 2006

é que eu estou tentando compilar um dpr de uma dll
sua unidade usa outras units que já estão compiladas

eu coloco dcc32 -U<diretorios das unidades> nomedpr

ele diz que o dcu das outras unidades estão com uma versão diferente
da unidade principal

uTal.pas was compiled with a different version of uPrincipal.pas

eu não consigo resolver isso. se eu compilar unidade por unidade,
e depois compilar a dpr, funciona.
não sei qual o critério que ele toma para dar esse erro. fico com receio de ter que sempre recompilar um por um as unidades usadas.


Massuda
   - 15 fev 2006

Inclua um -B na sua linha de comando... isso faz com que o DCC32 compile todas as units envolvidas.


Miudo
   - 15 fev 2006

resolvi algumas coisas

é o seguinte...
na dpr, quando tem a declaração das unidades, o formato é assim:

uTal in ´Tal.pas´

porém quando a unidade está uma pasta anterior a declaração fica
uTal in ´..\Tal.pas´

o compilador parece não identificar essa unidade, sendo necessário colocar todo o caminho

dessa forma a dll é compilada, mas fica com o tamanho maior que a
compilada pelo IDE do delphi (de 15K para 213K)
deve ser alguma configuração que não descobri


Massuda
   - 15 fev 2006


Citação:
uTal in ´..\Tal.pas´
Você pode eliminar o path dessas units no DPR; o DCC32 deve procurar nas pastas que você especificou no -U.


Citação:
dessa forma a dll é compilada, mas fica com o tamanho maior que a compilada pelo IDE do delphi
Dê uma olhada nas opções de debug e otimização.


Miudo
   - 22 fev 2006

Existe uma opção -LU que indica o uso de packages em tempo de
execução ex.:

-LUvclx30;VCL30;vcldb30;vcldbx30;inetdb30;inet30;VclSmp30;Qrpt30;
teeui30;teedb30;tee30;dss30;IBEVNT30;

caso não seja necessário compilar os packages junto com o programa tem que ser adicionado esse parâmetro.
Por isso minha dll estava maior que o normal.

No ide do delphi eu marcava a opção ´Build with runtime packages´