Pergunta

Eu tenho um arquivo BPG que eu tenho modificado para usar como um arquivo make para servidor de compilação automatizada da nossa empresa. A fim de fazê-lo funcionar eu tive que mudar

Uses                       *  Uses
  unit1 in 'unit1.pas'     *   unit1
  unit2 in 'unit2.pas'     *   unit2
   ...                     *    ...

no arquivo DPR para obtê-lo a trabalhar sem o compilador me dar algum disparate sobre Unit1.pas não encontradas. Isso é chato porque eu quero usar um arquivo BPG para realmente ver as coisas no meu projeto e cada vez que adicionar uma nova unidade, auto-macacos que em 'unitx.pas' em meu arquivo DPR.

Estou correndo make -f [then some options], o DPR é que eu estou a compilar não estão no mesmo diretório que o arquivo marca, mas não estou certo de que isso é importante. Tudo compila bem, enquanto o in 'unit1.pas é removido.

Foi útil?

Solução

Ele poderia vir do fato de que o caminho de busca no IDE e o caminho de pesquisa do compilador de linha de comando não são os mesmos. Se você alterar o caminho serach do compilador linha de comando que você pode ser capaz de usar o exactely mesmo código-fonte como dentro do IDE.

Uma possibilidade para configurar o caminho de pesquisa para o compilador de linha de comando é fazê-lo em um arquivo chamado dcc32.cfg. Dê uma olhada a ajuda, há uma breve descrição de dcc32.cfg no IDE-ajuda.

Outras dicas

Bem, esta solução alternativa trabalhou para mim.

//{$define PACKAGE}
{$ifdef PACKAGE}
 uses 
  unit1 in 'unit1.pas'
  unit2 in 'unit2.pas'
   ... 
{$else}
 uses 
  unit1 
  unit2
   ...
{$endif}

O único problema é sempre que você adicionar uma nova unidade, delphi apaga o seu ifdef package no topo.

Toda vez que eu tenho que colocar condicionais em um arquivo de projeto que eu faça o seguinte:

program a;

uses
  ACondUnits;

...


unit ACondUnits;

interface

uses
{$IFDEF UseD7MM}
  Delphi7MM;
{$ELSE}
  FastMM4;
{$ENDIF}

implementation

end.

Talvez este truque funciona em pacotes também. Nunca tentou.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top