Große Projekte: Komplieren verschnellern und ein Debugger Bu
-
- Lazarusforum e. V.
- Beiträge: 7192
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
Große Projekte: Komplieren verschnellern und ein Debugger Bu
Hallo,
ich habe gemerkt bei meinem Lazarus das aber eine Gewissen Größe des Projektes das Debuggen nicht mehr geht und beim beenden des Programms kommt nur eine Fehlermeldung:
Der Debugger ist in den Fehlerzustand gegangen und da kann ich nur auf OK klicken weiß da jemand was ?
und ich denke meine zweite Frage passt hier auch noch rein:
Bei meinem Paint2 Projekte habe ich immer mehr units und Klassen und jedesmal muss beim Kompilieren alles neu erstellt werden.... das dauert natürlich... wie könnte ich es verschnellen ?
ich habe schon überlegt ob ich teile in DLL's auslagere.
Da gibt es nur ein Problem: eigentlich arbeite ich ständig in jeder unit und außerdem sind es sehr viele klassen.
Ich habe gelesen das es schwierig ist klassen in DLLS auszulagern und zu nutzen.....
stimmt da ? kann mir da jemand weiter helfen ?
ich habe gemerkt bei meinem Lazarus das aber eine Gewissen Größe des Projektes das Debuggen nicht mehr geht und beim beenden des Programms kommt nur eine Fehlermeldung:
Der Debugger ist in den Fehlerzustand gegangen und da kann ich nur auf OK klicken weiß da jemand was ?
und ich denke meine zweite Frage passt hier auch noch rein:
Bei meinem Paint2 Projekte habe ich immer mehr units und Klassen und jedesmal muss beim Kompilieren alles neu erstellt werden.... das dauert natürlich... wie könnte ich es verschnellen ?
ich habe schon überlegt ob ich teile in DLL's auslagere.
Da gibt es nur ein Problem: eigentlich arbeite ich ständig in jeder unit und außerdem sind es sehr viele klassen.
Ich habe gelesen das es schwierig ist klassen in DLLS auszulagern und zu nutzen.....
stimmt da ? kann mir da jemand weiter helfen ?
MFG
Michael Springwald
Michael Springwald
-
- Lazarusforum e. V.
- Beiträge: 2809
- Registriert: Sa 9. Sep 2006, 18:05
- OS, Lazarus, FPC: Linux (L trunk FPC trunk)
- CPU-Target: 64Bit
- Wohnort: Dresden
- Kontaktdaten:
Indem du einfach unter Projekteinstellungen > Diverses die Checkbox für 'Immer ein Build durchführen (auch, wenn nichts verändert wurde)' deaktivierst, und dann sollte es schon schneller laufen.und jedesmal muss beim Kompilieren alles neu erstellt werden.... das dauert natürlich... wie könnte ich es verschnellen ?
Was den Fehlerzustand angeht, liegt es wohl eher an kleinen Unsauberheiten, diesich ab einer gewissen Größe und zunehmender Anzahl an Komponenten einschleichen, als am Debugger. Beispielsweise, was ich bemerkt hab, sobald über SQLDb ne Datenbank angesprochen wird, kommt beim Debugger zurücksetzen auch ne AV, wenn man normal das Hauptformular schließt nicht, und so kann es ja mit anderen Dingen auch sein, weshalb plötzlich Fehlermeldungen auftauchen.
-
- Lazarusforum e. V.
- Beiträge: 7192
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
"Immer ein Build durchführen" wenn ich das deaktiviere dann kompeliert er nur die units neu die verändert wurden, sehe ich das richtig ?
was meinst du mit "kleinen Unsauberkeiten" ?
in meinem Code oder den code vom Debugger ?
Wobei bei neu angelegten Projekten geht der Debugger !
was meinst du mit "kleinen Unsauberkeiten" ?
in meinem Code oder den code vom Debugger ?
Wobei bei neu angelegten Projekten geht der Debugger !
MFG
Michael Springwald
Michael Springwald
-
- Lazarusforum e. V.
- Beiträge: 2809
- Registriert: Sa 9. Sep 2006, 18:05
- OS, Lazarus, FPC: Linux (L trunk FPC trunk)
- CPU-Target: 64Bit
- Wohnort: Dresden
- Kontaktdaten:
Richtig, er erstellt nur verändertes neu, was also völlig ausreicht und je nach Umfang wesentlich verschnellert.
Mit kleineren Unsauberkeiten meinte ich alles, sowohl selbst Programmierte, wie auch in vorgegebenen Codeteilen, oder auch nur kleinere Konflikte darin, wie beispielsweise das Zurücksetzen des Debuggers bei ner Datenbankverbindung. Und genau aus diesem Grund funktioniert der Debugger ja auch ohne diese Meldung bei neuen Projekten, weil der Umfang und somit die möglichen Fehlerquellen ja wesentlich geringer sind, und auch noch keine speziellen Komponenten oder ähnliches eingebunden sind.
Mit kleineren Unsauberkeiten meinte ich alles, sowohl selbst Programmierte, wie auch in vorgegebenen Codeteilen, oder auch nur kleinere Konflikte darin, wie beispielsweise das Zurücksetzen des Debuggers bei ner Datenbankverbindung. Und genau aus diesem Grund funktioniert der Debugger ja auch ohne diese Meldung bei neuen Projekten, weil der Umfang und somit die möglichen Fehlerquellen ja wesentlich geringer sind, und auch noch keine speziellen Komponenten oder ähnliches eingebunden sind.
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
Nö, immer build durchführen compiliert nicht nur sachen die geändert wurden.
Das macht der fpc immer. er baut aus dem aktuellen code eine ID und vergleicht die mit einer ID im header der .ppu sind die beiden gleich baut er die ppu nicht neu sind sie unterscheidlich wird die ppu neu compiliert.
Das macht er immer so.
Immer Build durchführen linkt das Projekt lediglich vor jedem start neu.
Lazarus merkt sich dazu ob im Projekt irgendwas verändert wurde ist das nicht der Fall rufts den compiler gar nicht erst auf. Wenn es ihn aufruft prüft dieser alle ppus und linkt das projekt.
Das macht der fpc immer. er baut aus dem aktuellen code eine ID und vergleicht die mit einer ID im header der .ppu sind die beiden gleich baut er die ppu nicht neu sind sie unterscheidlich wird die ppu neu compiliert.
Das macht er immer so.
Immer Build durchführen linkt das Projekt lediglich vor jedem start neu.
Lazarus merkt sich dazu ob im Projekt irgendwas verändert wurde ist das nicht der Fall rufts den compiler gar nicht erst auf. Wenn es ihn aufruft prüft dieser alle ppus und linkt das projekt.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/