Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.net  
   

Die mobilen Seiten von c++.net:
https://m.c-plusplus.net

  
C++ Forum :: VCL (C++ Builder) ::  RAD Studio 10.1 Berlin: Projektabhängigkeiten     Zeige alle Beiträge auf einer Seite Auf Beitrag antworten
Autor Nachricht
DocShoe
Mitglied

Benutzerprofil
Anmeldungsdatum: 02.04.2008
Beiträge: 2685
Beitrag DocShoe Mitglied 17:13:18 29.11.2016   Titel:   RAD Studio 10.1 Berlin: Projektabhängigkeiten            Zitieren

Hallo,

das RAD Studio 10.1 Berlin Update 2 überrascht mich immer wieder mit neuen Features:

Ich habe mehrere Projekte (8 statische Bibliotheken, 1 VCL Forms Anwendung), die ich in einer Projektgruppe zusammengefasst habe. Man kann für jedes Projekt die Buildkonfiguration separat einstellen (Debug/Release). Wenn ich im Projekt, das die .exe baut, die Abhängigkeiten von den anderen Projekten einstelle, werden alle Projekte, von denen die .exe abhängt, mit der Buildkonfiguration der .exe gebaut. Das ist insofern doof, weil der Linker die .exe im Debug Modus wegen LME288 (Linker out of memory) nicht mehr linken kann.
Trage ich die Abhängigkeiten nicht ein baut der Linker Mist, weil der Compiler Änderungen in den übrigen Projekten nicht mitbekommt und nicht neu übersetzt. Dann linkt der Linker irgendwas zusammen und die exe erzeugt beim Starten Zugriffsfehler. Die Lösung besteht dann darin, das Projekt mit den Änderungen manuell neu zu übersetzen und für Projekte, die davon abhängen, komplett neu zu bauen. Dauert dann immer ne Stunde und ist nicht zumutbar.
Überhaupt habe ich den Eindruck, dass die IDE Probleme beim Erkennen von geänderten Dateien hat. Mir ist es schon mehrmals passiert, dass Compiler und Linker bei einem Build all ohne Fehler durchlaufen und eine .exe produzieren, die sich ausführen lässt. Beim nächsten Durchlauf bekomme ich plötzlich eine Fehlermeldung der Art:

C++:
1
2
3
4
5
6
7
8
void Test::stop()
{
}
 
void Test::some_func()
{
   sotp();
}


Compiler schrieb:

[bcc32c Fehler] Test.cpp(xy): Verwendung vom nicht deklariertem Bezeichner 'sotp'


Wieso ist der beim 1. Durchlauf nicht erkannt worden?

Genauso bekomme ich sporadisch Linkerfehler, dass eine bestimmte Klasse vom Linker nicht gefunden werden konnte. Im Projekt ist sie 100%ig vorhanden und ist auch in die entsprechende .lib kompiliert worden. Nach einem Build All funktioniert´s dann meistens wieder, dauert aber auch wieder ne Stunde. Ich habe bisher nicht herausfinden können, woran das jetzt genau liegt.

So, und jetzt zu den Fragen ;)

1) Hat jemand eine Ahnung, wie man die Vererbung der Buildkonfiguration abschalten kann? Manche Projekte brauche ich nur im Release-Modus, weil sie fehlerfrei und getestet sind. Im Debug Modus werden die erzeugten .libs zu groß und lassen den Linker platzen. Ich möchte die .exe im Debug Modus übersetzen und die übrigen Projekte im Release Modus.
2) Hat jemand ähnliche Erfahrungen mit dem Compiler/Linker gemacht, dass er geänderte Dateien nicht neu übersetzt oder linkt. Gibt´s Lösungen dafür?

Edit:
Zu 1)
Man kann in den Projekteigenschaften die Auto-Abhängigkeitsüberprüfungen deaktivieren, um individuelle Konfigurationen zu bauen. Dann erkennt das übergeordnete Projekt zwar keine Änderungen mehr in den untergeordneten Projekten, aber damit hat´s ja sowieso Probleme.

Edit II:
Funktioniert doch nicht, es werden alle untergeordneten Projekte mit der gleichen Konfiguration wie das übergeordnete Projekt gebaut.

_________________
Die fünf häufigsten Anzeichen für Faulheit:
1.


Zuletzt bearbeitet von DocShoe am 17:19:09 02.12.2016, insgesamt 2-mal bearbeitet
C++ Forum :: VCL (C++ Builder) ::  RAD Studio 10.1 Berlin: Projektabhängigkeiten   Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.net ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info und www.c-plusplus.net enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.