Stand von Quellen und Binärdateien in Lazarus
Stand von Quellen und Binärdateien in Lazarus
Ich benutze relativ häufig Lazarus als Entwicklungsumgebung auch für Konsolenprogramme und habe daher ständig einen Dateimanager offen (Totalcommander). Nun habe ich gelernt, Lazarus legt seine compilierten *.PPU *.O *.EXE usw nicht im Rootverzeichnis des Projektes ab, sondern unter einem Unterverzeichnis LIB und auch noch plattformabhängig. Das ist soweit so gut - wenn man es denn weiß - andererseits aber für mich oft genug irritierend, wenn ich dann am Abend oder so das Programm noch einmal mit FPC Batch umwandeln und testen will und dann die wildesten Konstellationen auftauchen. Daß die Datum/Zeit "nicht stimmen" ok geschenkt. Schlimmer ist schon wenn sich das Programm im Batch nicht compilieren läßt, weil noch alte Reste von *.o oder *.ppu da sind und oft genug der Linker meckert. Oder etwas ganz anderes heraus kommt beim Compilieren als mal vorher getestet hat. Daß die "große" EXE mit den Debug-Infos im Root-Verzeichnis steht, paßt irgendwie nicht dazu. Ich compiliere per Hand 32/64bit und benenne die EXEn um in Beispiel32.EXE und Beispiel64.EXE.  Es wäre aber schön, wenn das Datum der *.O und *.PPU und *.EXE immer zu dem passen würde was man gerade gemacht hat im Lazarus. Die Quellen stehen ja auch so "aktuell" da. Kann man das irgendwie einstellen? Hat jemand mein Dilemma verstanden?
Nicht nur als Dilemma sondern als handfestes Problem hatte ich das schon mehrfach wo ich Stein und Bein geschworen hatte - das muß doch aber nun aktuell sein, das habe ich gerade so gemacht... und stundenlang gesucht und erst danach einmal ein Säubern und Neucompilieren mit FPC Batch in Erwägung gezogen hatte. Einfach weil die Lernkurve erst dann einsetzt, wenn die Unit im Root von vor 10 min, die *.PPU aber vom Mai 2020 ist...
			
			
									
									
						Nicht nur als Dilemma sondern als handfestes Problem hatte ich das schon mehrfach wo ich Stein und Bein geschworen hatte - das muß doch aber nun aktuell sein, das habe ich gerade so gemacht... und stundenlang gesucht und erst danach einmal ein Säubern und Neucompilieren mit FPC Batch in Erwägung gezogen hatte. Einfach weil die Lernkurve erst dann einsetzt, wenn die Unit im Root von vor 10 min, die *.PPU aber vom Mai 2020 ist...
Re: Stand von Quellen und Binärdateien in Lazarus
run
compile many Modes..
Dort habe ich meine x32|64 Releases und den Debug zur auswahl.
letzterer wird nicht ausgewählt und es wirft mir die dateien in den angegebenen Pfaden der ausgewählten Build modes aus.
Verstehe ich dich richtig, dass du diesen prozess verkompliziert hast? 
 
Gruß
			
			
									
									
						compile many Modes..
Dort habe ich meine x32|64 Releases und den Debug zur auswahl.
letzterer wird nicht ausgewählt und es wirft mir die dateien in den angegebenen Pfaden der ausgewählten Build modes aus.
Verstehe ich dich richtig, dass du diesen prozess verkompliziert hast?
 
 Gruß
- af0815
- Lazarusforum e. V.
- Beiträge: 6983
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Stand von Quellen und Binärdateien in Lazarus
Vorweg, entscheide dich für ein Build System - Lazarus und Lazbuild. Oder FPC mit make. Ein mischen von Buildsystemen wird dir immer Probleme machen.alfware17 hat geschrieben: Do 23. Okt 2025, 13:51 Ich benutze relativ häufig Lazarus als Entwicklungsumgebung auch für Konsolenprogramme und habe daher ständig einen Dateimanager offen (Totalcommander). Nun habe ich gelernt, Lazarus legt seine compilierten *.PPU *.O *.EXE usw nicht im Rootverzeichnis des Projektes ab, sondern unter einem Unterverzeichnis LIB und auch noch plattformabhängig. Das ist soweit so gut - wenn man es denn weiß - andererseits aber für mich oft genug irritierend, wenn ich dann am Abend oder so das Programm noch einmal mit FPC Batch umwandeln und testen will und dann die wildesten Konstellationen auftauchen.
Wo ein Lazarusprojekt seine Dateien sucht und wo es seine Libs speichert, bestimmst du als Programmieren alleine, man muss sich nur mit den Konfigurationen vertraut machen. Ein riesen Vorteil ist, das man mit Lazarus/Lazbuild verschiedene Konfigurationen (auch für das Crosscompilieren) verwalten kann. Man kann dort sehr viele Sachen ganz gezielt und sehr fein steuern. ABER man muss es wollen und einrichten. So wie du es schreibst, ist es eine Standardkonfiguration und du hast diese nicht an deine Bedürfnisse angepasst. Die Standardkonfiguration hat schon seinen Sinn, besonders wenn man für mehrere Targets bzw. Platformen baut.
Lazbuild ist ein Lazarus auf der Konsole, das alles kann was Lazarus auch kann, ausser Quelltextverwaltung/Bearbeitung. Daher, wenn du ein Lazarus Projekt im Batch kompilieren willst, so verwende Lazbuild. Das verwendet Lazarus selbst um sich neu zu kompilieren.
Vermische nicht das make-System vom FPC (geht über fpcmake und erstellt eigene make Dateien) mit dem Projekt-Buildsysten vom Lazarus.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder  nachsehen in  LazInfos/LazSnippets).
						Re: Stand von Quellen und Binärdateien in Lazarus
ich habe leider eure beiden Tips nicht verstanden und/oder ihr mein Problem nicht.
Also ich habe in meinem Projektverzeichnis mehrere Units A, B, C, D von verschiedenen Ständen 2024, 2021 und 2025 (nur C und D sind in Entwicklung, A und B sind i.O.). Und mein Programm P. Ich benutze Lazarus als Editor und debugge dort auch. Allerdings schreibt Lazarus mir alle *.O und alle *.PPU in ein LIB-Verzeichnis bzw ein Unterverzeichnis davon. Die debuggte EXE wiederum steht im Projektverzeichnis (ich erkenne es an Datum und Größe).
Im Projektverzeichnis stehen auch *.O und *.PPU allerdings von A, B, C und D von meinem letzten Batch FPC, im Zweifel eine Woche alt. Und da ich C und D alt auch noch irgendwo im Pfad habe von 2023 - paßt es oft nicht, gerade wenn sich Schnittstellen geändert haben und ich mich wundere, mensch das habe ich doch längst geändert usw. Natürlich kann ich alles aktualisieren, wenn ich einmal im Projektverzeichnis alle (keine vergessen!) *.O und *.PPU lösche und neu compiliere mit FPC.
Es hätte es aber gerne so, daß auch Lazarus alles im Projektverzeichnis immer ablegt. Wenn ich einen gesicherten Stand haben will, dann kann ich den doch in einen Unterordner Produkt oder Aktuell bringen.
			
			
									
									
						Also ich habe in meinem Projektverzeichnis mehrere Units A, B, C, D von verschiedenen Ständen 2024, 2021 und 2025 (nur C und D sind in Entwicklung, A und B sind i.O.). Und mein Programm P. Ich benutze Lazarus als Editor und debugge dort auch. Allerdings schreibt Lazarus mir alle *.O und alle *.PPU in ein LIB-Verzeichnis bzw ein Unterverzeichnis davon. Die debuggte EXE wiederum steht im Projektverzeichnis (ich erkenne es an Datum und Größe).
Im Projektverzeichnis stehen auch *.O und *.PPU allerdings von A, B, C und D von meinem letzten Batch FPC, im Zweifel eine Woche alt. Und da ich C und D alt auch noch irgendwo im Pfad habe von 2023 - paßt es oft nicht, gerade wenn sich Schnittstellen geändert haben und ich mich wundere, mensch das habe ich doch längst geändert usw. Natürlich kann ich alles aktualisieren, wenn ich einmal im Projektverzeichnis alle (keine vergessen!) *.O und *.PPU lösche und neu compiliere mit FPC.
Es hätte es aber gerne so, daß auch Lazarus alles im Projektverzeichnis immer ablegt. Wenn ich einen gesicherten Stand haben will, dann kann ich den doch in einen Unterordner Produkt oder Aktuell bringen.
Re: Stand von Quellen und Binärdateien in Lazarus
Sie müssen die Dateien nicht manuell löschen, sondern können in der Lazarus-IDE „Run > Cleanup and Build” auswählen.alfware17 hat geschrieben: Natürlich kann ich alles aktualisieren, wenn ich einmal im Projektverzeichnis alle (keine vergessen!) *.O und *.PPU lösche und neu compiliere mit FPC.


Entfernen Sie den Pfad des Ausgabeverzeichnisses in den Projektoptionen, dann werden die Dateien *.o und *.ppu im Projektverzeichnis gespeichert.Es hätte es aber gerne so, daß auch Lazarus alles im Projektverzeichnis immer ablegt. Wenn ich einen gesicherten Stand haben will, dann kann ich den doch in einen Unterordner Produkt oder Aktuell bringen.

Grüße / Pozdrawiam 
paweld
						paweld
Re: Stand von Quellen und Binärdateien in Lazarus
Danke @paweld   
 
Das war genau das was ich suchte...
			
			
									
									
						 
 Das war genau das was ich suchte...
- af0815
- Lazarusforum e. V.
- Beiträge: 6983
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Stand von Quellen und Binärdateien in Lazarus
Buildmodes: 
https://wiki.freepascal.org/IDE_Window: ... er_Options Achtung: die deutsche Version dürfte nicht aktuell sein.
https://www.youtube.com/watch?v=62GB8sdiI7U
Zu Projektverzeichnissen mit verschiedenen Ständen äußere ich mich nicht, mit der Suchfunktion kann man über GIT hier im Forum einiges finden.
			
			
									
									https://wiki.freepascal.org/IDE_Window: ... er_Options Achtung: die deutsche Version dürfte nicht aktuell sein.
https://www.youtube.com/watch?v=62GB8sdiI7U
Zu Projektverzeichnissen mit verschiedenen Ständen äußere ich mich nicht, mit der Suchfunktion kann man über GIT hier im Forum einiges finden.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder  nachsehen in  LazInfos/LazSnippets).
						- 
				PascalDragon
- Beiträge: 999
- Registriert: Mi 3. Jun 2020, 07:18
- OS, Lazarus, FPC: L 2.0.8, FPC Trunk, OS Win/Linux
- CPU-Target: Aarch64 bis Z80 ;)
- Wohnort: München
Re: Stand von Quellen und Binärdateien in Lazarus
Dann ändere doch das Kommando ab, mit dem du FPC aufrufst, so dass die Units in den gleichen Verzeichnissen wie von Lazarus gesucht/abgelegt werden. Der Parameter hierzu ist -FU<Pfad>.alfware17 hat geschrieben: Fr 24. Okt 2025, 08:41 Im Projektverzeichnis stehen auch *.O und *.PPU allerdings von A, B, C und D von meinem letzten Batch FPC, im Zweifel eine Woche alt.
FPC Compiler Entwickler
						- 
				Warf
- Beiträge: 2220
- Registriert: Di 23. Sep 2014, 17:46
- OS, Lazarus, FPC: Win10 | Linux
- CPU-Target: x86_64
Re: Stand von Quellen und Binärdateien in Lazarus
Auch ein Tipp: wenn du deine sources in einem git repo verwaltest und die build artifakte in der gitignore aussortierst (ich nutz einfach die: https://github.com/github/gitignore/blo ... .gitignore)
Und dann mit
Ist alles weg was nicht zum core repo gehört. Besser als jedes editor cleanup oder make file
			
			
									
									
						Und dann mit
Code: Alles auswählen
git clean -xdff
 Verein
Verein 
 Links
Links Suche
Suche