Frage

Warum C ++ Builder 6 immer alle Dateien zusammenstellen?

Ich mache einige Änderungen an einer Datei aber BCB 6 kompiliert alle Dateien, wenn ich die app starten. Irgendeine Idee? Ich verwende Windows XP SP2.

War es hilfreich?

Lösung

versuchen, dieses Plugin für BCB Compiler: Bcc32Pch IDE Plugin

Andere Tipps

Sind Sie Quelldateien und binäre Objekte auf der gleichen Maschine befinden? Wenn nicht klingt wie Sie ein Netzwerk-Zeitsynchronisierungsproblem haben.

Wenn sie sein höchstwahrscheinlich ein Header-Datei Problem sind, entweder die Compiler-Include-Dateien haben ein Änderungsdatum einig Zeit in der Zukunft oder Ihre Anwendung ist abhängig von einiger Headerdatei, das während der Kompilierung ändert sagt von einem COM-Import.

EDIT: Überprüfen Sie die Einstellung VS ein Flag muss immer neu kompilieren, könnte dies auch für BCB wahr sein, gesetzt, wenn dann ungesetzt es. Eine weitere Möglichkeit besteht darin, dass vorkompilierte Header sind miss-konfiguriert, um auf jeder Quelldatei zu erzeugen.

Ich bin nicht vertraut mit BCB 6 eine genauere Antwort zu geben.

Haben Sie alle oder gemacht viele Ihrer Dateien abhängig von einem bestimmten Modul?

Alle Dateien, die auf einem bestimmten Modul abhängig sind, werden die Modulklassenstruktur jederzeit neu erstellt werden (in der H-Datei enthalten ist) geändert wird. Wenn Sie zum Beispiel ein Datenmodul haben, die von vielen anderen Modulen zugegriffen wird, werden Sie sehen, ein jedes Mal aller abhängigen Module wieder aufzubauen ist das Datenmodul Klassenstruktur geändert wird.

Es gibt eine Pragma in Borland, weichen steuert, wie viele Zeilen Code neu kompiliert werden.

In den letzten Jahren habe ich (in einem Projekt) haben es geschafft, dass nur Änderungen meiner Quelle zusammengestellt. Ich weiß nicht, ob dies in neueren Versionen von borland gearbeitet wird

Borland 6 hat einen Pragma "hdrstop". dies ist nur dann aktiv, wenn die Projektoption „Pre-Compile-Header“ ist nicht „none“

vor Jahren habe ich einen sehr langsamen Computer eine i die compilition Zeit von Stunden auf Minuten beschleunige mit folgendem Trick

Alle CPPS- haben sich diese erste Zeile

#include "all.h"
#pragma hdrstop

default wurde ein Include von "vcl.h"

"all.h" Wille enthält alle Header, weicht in allen benötigt! Einheiten. Jede Einheit wird alle Quellen überspringen, wich hängen von Header vor Pragma hdrstop.

Beispiel:

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>

Importieren

  1. nicht verwenden all.h in Headerfiles
  2. Sie fügen Sie alle gehören, wich im Projekt-Header verwendet, wie,
  3. wich Alle Quellen sind abhängig von den „pre kompiliert Header“ wird nicht kompiliert wieder!
  4. Erzeugung von vorkompilierte Header wird langsam sein! So fügen Sie nur Header in all.h, die nicht oft geändert werden. Wie System-Header oder Wich sind Ihre Header bereits beendet ist.
  5. Kompilation kann nicht bestanden. manchmal die Reihenfolge der umfaßt ein „Deadlock“ für die comilation erzeugen. Wenn es passiert, deaktivieren „vorkompilierte Header“. Die meisten Probleme werden gelöst, wenn Sie Ihre c ++ schreiben wie in Java: jede Klasse seine eigenen Dateien werden wird (CPP und h).
  6. Dateiname in der Projektoption „vorkompilierte Header“ zeigt die Basisnamen der realen vorkompilierte Dateien. eine Einheit kann eine vorkompilierte Datei mit einem anderen Gerät teilen, wenn es die gleichen Inludes vor „Pragma hdrstop“ hat (genau). Die beste Leistung wird erreicht, wenn Sie nur eine Datei mit einem numerischen Postfix haben. Beispiel für mehr als eine vorkompilierte Header:

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>

Stellen Sie sicher, dass Sie den „make“ Befehl verwenden, und nicht den „bauen“ Befehl, es sei denn, es erforderlich ist.

ein Projekt mit den Borland-Tool machen immer schien, dass Problem zu haben -., Dass es nicht unbedingt feststellen, welche davon geändert haben und beginnt, alles zu kompilieren

Schauen Sie sich die vorkompilierte Header-Optionen, die Geschwindigkeit Dinge helfen können.

Wenn Borland / CodeGear, beginnend in C ++ Builder 2007, auf das MSBuild-System eingeschaltet haben die Compilations viel schneller gegangen und sind effizienter.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top