Hallo,
ich hab grad nochmal verglichen: Delphi 5 linkt intelligent. Wenn ich eine Unit mit meinen gesammelten Hilfsfunktionen linke, sind nur die Funktionen in der *.exe, die auch irgendwo aufgerufen werden. Das hält die *.exe klein. Lazarus für Linux linkt alles, was in der Unit steht, auch wenn es nicht benötigt wird. Lazarus für Windows scheint auch intelligent zu linken. Kann man etwas einstellen, damit Lazarus für Linux intelligent linkt?
Heiner
[gelöst] intelligentes Linken
-
- Beiträge: 323
- Registriert: Di 12. Apr 2011, 13:21
- OS, Lazarus, FPC: WinXP + VMWare Player mit Fedora14, L 1.1, FPC 2.7.1
- CPU-Target: 1core 1,8GHz 32Bit
- Wohnort: Fürth
- Kontaktdaten:
[gelöst] intelligentes Linken
Zuletzt geändert von Heinrich Wolf am Sa 29. Sep 2012, 18:15, insgesamt 1-mal geändert.
-
- Lazarusforum e. V.
- Beiträge: 2808
- Registriert: Fr 22. Sep 2006, 10:38
- OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
- Wohnort: Hessen
- Kontaktdaten:
Re: intelligentes Linken
Hi, ja das geht: In den Projekteinstellungen unter Compilereinstwllungen--> Linken.
Dort "Debuggersymbole ... entfernen" markieren und "Zeilennummern...anzeigen" deaktivieren. , dann "Smart Linken" aktivieren und diese Option evenfalls im Reiter ""Codegenerierung" aktivieren.
Die Grösse der Dateien schrumpft darauf hin auf einen Bruchteil.
Wenn Du Dein Programm debuggen möchtest, solltest Du die Einstellungen dann aber wieder rückgängig machen.
Viele Grüsse, Euklid
Dort "Debuggersymbole ... entfernen" markieren und "Zeilennummern...anzeigen" deaktivieren. , dann "Smart Linken" aktivieren und diese Option evenfalls im Reiter ""Codegenerierung" aktivieren.
Die Grösse der Dateien schrumpft darauf hin auf einen Bruchteil.
Wenn Du Dein Programm debuggen möchtest, solltest Du die Einstellungen dann aber wieder rückgängig machen.
Viele Grüsse, Euklid
-
- Beiträge: 323
- Registriert: Di 12. Apr 2011, 13:21
- OS, Lazarus, FPC: WinXP + VMWare Player mit Fedora14, L 1.1, FPC 2.7.1
- CPU-Target: 1core 1,8GHz 32Bit
- Wohnort: Fürth
- Kontaktdaten:
Re: intelligentes Linken
Hallo Euklid,
Debuggersymbole und Zeilennummern hatte ich schon entfernt. Die Binaries wurden dadurch beträchtlich kleiner. Auf Dein Posting hin hab ich auch noch smart Linken aktiviert. Ich hab alle *.ppu und *.o gelöscht und neu compiliert. Die Binaries wurden nochmal geringfügig kleiner. Aber das Linken ist noch immer nicht so intelligent, wie ich mir wünsche. Ich hab die Binaries nach einem String gegrept, der lokal als Konstante in einer Funktion deklariert ist, die nirgends aufgerufen wird. Dieser String wird immer noch gefunden.
Heiner
Debuggersymbole und Zeilennummern hatte ich schon entfernt. Die Binaries wurden dadurch beträchtlich kleiner. Auf Dein Posting hin hab ich auch noch smart Linken aktiviert. Ich hab alle *.ppu und *.o gelöscht und neu compiliert. Die Binaries wurden nochmal geringfügig kleiner. Aber das Linken ist noch immer nicht so intelligent, wie ich mir wünsche. Ich hab die Binaries nach einem String gegrept, der lokal als Konstante in einer Funktion deklariert ist, die nirgends aufgerufen wird. Dieser String wird immer noch gefunden.
Heiner
-
- Lazarusforum e. V.
- Beiträge: 2808
- Registriert: Fr 22. Sep 2006, 10:38
- OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
- Wohnort: Hessen
- Kontaktdaten:
Re: intelligentes Linken
Hi Heiner,
intelligenter linken geht meines Wissens noch nicht.
- Euklid
intelligenter linken geht meines Wissens noch nicht.
- Euklid
-
- Lazarusforum e. V.
- Beiträge: 3178
- Registriert: Di 22. Jul 2008, 19:27
- OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
- CPU-Target: 32bit x86 armhf
- Wohnort: Köln
- Kontaktdaten:
Re: intelligentes Linken
Dann wäre ein funktionsfähiges Minimalbeispiel sinnvoll; das könntest du dann auch direkt den Entwicklern im Bugtracker zu Verfügung stellen, da hier durchaus eine Optimierungsmöglichkeit gegeben sein könnte.Heinrich Wolf hat geschrieben:Aber das Linken ist noch immer nicht so intelligent, wie ich mir wünsche. Ich hab die Binaries nach einem String gegrept, der lokal als Konstante in einer Funktion deklariert ist, die nirgends aufgerufen wird. Dieser String wird immer noch gefunden.
Vorher solltest du auf jeden Fall überprüfen, ob alle Voraussetzungen für Smartlinking gegeben sind.
Diese Wiki-Seiten kennst du natürlich schon ...
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
-
- Beiträge: 323
- Registriert: Di 12. Apr 2011, 13:21
- OS, Lazarus, FPC: WinXP + VMWare Player mit Fedora14, L 1.1, FPC 2.7.1
- CPU-Target: 1core 1,8GHz 32Bit
- Wohnort: Fürth
- Kontaktdaten:
Re: intelligentes Linken
In einem mini-mini-Projekt konnte ich den Fehler nicht reproduzieren, aber ein kleineres meiner normalen Projekte, das den Fehler zeigt, hab ich hochgeladen zu http://bugs.freepascal.org/view.php?id=22888
Heiner
Heiner
-
- Beiträge: 323
- Registriert: Di 12. Apr 2011, 13:21
- OS, Lazarus, FPC: WinXP + VMWare Player mit Fedora14, L 1.1, FPC 2.7.1
- CPU-Target: 1core 1,8GHz 32Bit
- Wohnort: Fürth
- Kontaktdaten:
Re: [gelöst] intelligentes Linken
Ich hab nach einigen Schwierigkeiten jetzt fpc Version 2.7.1 von svn in Revision 22502 von heute. Damit ist smart linken so wie in http://bugs.freepascal.org/view.php?id=22888 versprochen besser geworden.