Pergunta

Por que a C ++ Builder 6 sempre compilar todos os arquivos?

I fazer algumas alterações em um arquivo, mas BCB 6 compila todos os arquivos quando eu iniciar o aplicativo. Qualquer ideia? Eu uso o Windows XP SP2.

Foi útil?

Solução

tentar este plugin para o compilador BCB: Bcc32Pch IDE Plugin

Outras dicas

Tem arquivos de origem e objetos binários localizado na mesma máquina? Se não parece que você tem um problema de rede tempo sincronização.

Se eles são o seu provavelmente um problema de arquivo de cabeçalho, ou o compilador incluir arquivos têm uma data modificada em algum momento no futuro ou a sua aplicação é dependente de algum arquivo de cabeçalho que as mudanças durante a compilação digamos a partir de uma importação COM.

EDIT: Verifique a configuração do VS tem uma bandeira para sempre re-compilação, isso pode ser verdade para BCB também, se estiver definido, então unset-lo. Outra possibilidade é que os cabeçalhos pré-compilados são gerar em cada arquivo de origem configurado-miss.

Eu não estou familiarizado com BCB 6 para dar uma resposta mais precisa.

Você fez todos ou muitos de seus arquivos dependentes de um módulo particular?

Os arquivos que são dependentes de um determinado módulo será reconstruída qualquer momento a estrutura de classes do módulo (contido no arquivo .h) é modificado. Se, por exemplo, você tem um módulo de dados que é acessado por muitos outros módulos que você vai ver uma reconstrução de todos os módulos dependentes cada vez que a estrutura de classes do módulo de dados é modificado.

Há um pragma no Borland, wich controla como muitas linhas de código é recompilado.

Nos últimos anos tenho conseguido (em algum projeto), que só muda de minha fonte são compilados. Eu não sei, se isso vai ser trabalhado em versões mais recentes do Borland

Borland 6 tem uma pragma "hdrstop". este só está activa, se o projeto de opção "pré-compilar os cabeçalhos" não é "nenhum"

anos atrás eu tiver um computador muito lento um i acelerar o tempo compilition de horas para minutos com seguinte truque

todas CPPS tornaram-se esta primeira linha

#include "all.h"
#pragma hdrstop

padrão era um include de "vcl.h"

"all.h" vontade inclui todos os cabeçalho, wich são necessários em todos! unidades. cada unidade irá ignorar todas as fontes, wich dependem de cabeçalho antes pragma hdrstop.

Exemplo:

Unit1.h

 #include <string>

Unit1.cpp

   #include "all.h"
   #pragma hdrstop

   #include "Unit1.h"

Unit2.h

 #include <vcl>

Unit2.cpp

   #include "all.h"
   #pragma hdrstop

   #include "Unit2.h"

all.h

   #include <string>
   #include <vcl>

Importar

  1. uso não faça all.h em ficheiros cabeçalho
  2. você pode adicionar todos inclui, wich são utilizados no cabeçalho do projeto, como,
  3. Todas as fontes wich dependem de "pré cabeçalhos compilados" não será compilado novamente!
  4. geração de cabeçalhos pré-compilados será lenta! Assim, apenas adicionar cabeçalhos em all.h, que não serão alterados com freqüência. Como cabeçalhos de sistema ou seus cabeçalhos wich já estão acabados.
  5. compilação pode ser falhou. às vezes a ordem do inclui produzir um "impasse" para o comilation. se o seu acontecer, deactivate "cabeçalhos pré-compilados". A maioria dos problemas serão resolvidos, se você escrever o seu c ++ como em java: cada classe vai se tornar seus próprios arquivos (CPP e H).
  6. "cabeçalhos pré-compilados" Matrícula na opção de projeto mostra o nome base dos arquivos pré-compilados reais. uma unidade pode compartilhar um arquivo pré-compilado com outra unidade, se não tiver (exata) os mesmos inludes antes "pragma hdrstop". O melhor desempenho é alcançado, se você tiver apenas um arquivo com um sufixo numérico. Exemplo para mais do que um cabeçalho de pré-compilado:

Unit1.h

 #include <string>

Unit1.cpp

   #include "all.h"
   #pragma hdrstop

   #include "Unit1.h"

Unit2.h

 #include <vcl>

Unit2.cpp

   #include <vcl> //!!!!!!!!!!!!!!!!!!! produce a second version of an precompiled file
   #pragma hdrstop

   #include "Unit2.h"

all.h

  #include <string>
  #include <vcl>

Certifique-se de que você está usando o comando "make" e não o comando "build", a menos que seja necessário.

Fazendo um projeto com as ferramentas da Borland sempre pareceu ter essa questão -. Que não faz necessariamente aviso quais mudaram e começa a tudo de compilação

Olhe para as opções de cabeçalhos pré-compilados, que podem ajudar a acelerar as coisas.

Quando Borland / CodeGear, a partir de C ++ Builder 2007, mudou para o sistema MSBuild, as compilações ter ido muito mais rápido e são mais eficientes.

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