Lazarus cross-kompilierfähig machen

Für Installationen unter Linux-Systemen
Antworten
Roux
Beiträge: 2
Registriert: Di 29. Apr 2008, 17:18

Lazarus cross-kompilierfähig machen

Beitrag von Roux »

Hi!
Ich poste mal hier, in der Hoffnung hier richtig zu sein :) Ich will mit meinem Lazarus auch unter Linux für Windows kompilieren. (Ich nutze Ubuntu 7.10, 32 bit)
Dazu habe ich mir FPC (mit fpc-crosswin32) und Lazarus installiert. Beides Funktioniert für Linux. Und angefangen, diese Seite abzuarbeiten:
Cross compiling for Win32 under linux

Bis Schritt "Cross compiling the LCL and lazarus components" funktioniert alles, wenn ich jedoch folgendes ausführe:
cd lazarus; make clean all OS_TARGET=win32
Kommt folgender Fehler:
Compiling graphics.pp
graphics.pp( 42,38 ) Fatal: Can't find unit Contnrs used by Graphics
Fatal: Compilation aborted
:(

Roux

Edit: Versuch der Fehlerbehebung:
Er sucht die Unit in /usr/lib/fpc/2.2.0/units/i386-win32/rtl/ - in /usr/lib/fpc/2.2.0/units/i386-win32/fcl-base/ ist sie allerdings vorhanden, also hab ich eine symbolische Verknüpfung von rtl nach fcl-base erstellt:
sudo ln -s /usr/lib/fpc/2.2.0/units/i386-win32/fcl-base/contnrs.ppu /usr/lib/fpc/2.2.0/units/i386-win32/rtl/contnrs.ppu
Jetzt kommt der Fehler nicht mehr, aber nen anderer - kann ich das allgemein so machen? Oder liegt da nen anderer Fehler vor, der sich so nicht beheben lässt?

pierredrks
Beiträge: 34
Registriert: Do 4. Okt 2007, 18:35
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Braunfels

Beitrag von pierredrks »

Nach meiner Erfahrung ist kein neuerstellen von Lazarus nötig.
Du musst einfach in den Compileroptionen die LCL-Schnittstelle und das Ziel auf Win32 stellen.
Das Herz besitzt Gründe, die die Vernunft nicht kennt.

Benutzeravatar
theo
Beiträge: 10927
Registriert: Mo 11. Sep 2006, 19:01

Beitrag von theo »

http://www.lazarusforum.de/kb.php?mode=article&k=16" onclick="window.open(this.href);return false;

Roux
Beiträge: 2
Registriert: Di 29. Apr 2008, 17:18

Beitrag von Roux »

Naja, trotzdem muss das neuerstellen ja funktionieren, pierredrks. Aber wahrscheinlich hat mir der Schritt mit dem crossintstall gefehlt, jetzt scheints zu funktionieren :) Danke, theo.

Mal noch ne Frage am Rande, ist es normal, dass die exe 9 MB groß ist, obwohl bei dem Projekt nichts gemacht wurde?

creed steiger
Beiträge: 958
Registriert: Mo 11. Sep 2006, 22:56

Beitrag von creed steiger »

Roux hat geschrieben: Mal noch ne Frage am Rande, ist es normal, dass die exe 9 MB groß ist, obwohl bei dem Projekt nichts gemacht wurde?
Jain.

Hier wirds erklärt:

http://wiki.lazarus.freepascal.org/Size_Matters" onclick="window.open(this.href);return false;

http://wiki.lazarus.freepascal.org/Laza ... _so_big.3F" onclick="window.open(this.href);return false;

pierredrks
Beiträge: 34
Registriert: Do 4. Okt 2007, 18:35
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Braunfels

Beitrag von pierredrks »

Das sind wohl die Mysterien unter Linux. Ich hatte(habe) ebenfalls Kubuntu 7.10 und Laz 0.9.24(0.9.25) und damit keinerlei Probleme beim Crosscompiling. Aber jede Linuxinstallation ist anders auch wenn die selbe Version auf dem selben Rechner installiert wird.
Das Herz besitzt Gründe, die die Vernunft nicht kennt.

Euklid
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:

Beitrag von Euklid »

Hallo
Roux hat geschrieben:Mal noch ne Frage am Rande, ist es normal, dass die exe 9 MB groß ist, obwohl bei dem Projekt nichts gemacht wurde?
Die Dateien schrumpfen wesentlich, wenn du die Debuggerinformationen aus den Binärdateien entfernen lässt und Smartlinking aktivierst. Das funktioniert wie folgt:

A) Debuggerinformationen entfernen

1. Menü "Projekt-->Compilereinstellungen-->Linken" aufrufen.
2. Dort "Zeilennummern [...]" deaktivieren und "Debuggersymbole aus [...]" aktivieren.

Wichtig: Zum Debuggen werden die Debuggersymbole natürlich benötigt. D.h. es ist empfehlenswert, obige Einstellungen vorzunehmen, wenn man mit dem Debuggen fertig ist.

B) Smartlinking:

Hier werden nur jener Codebereiche in die Binärdatei gelinkt, welche auch wirklich vom Programm benötigt werden.

1. Menü "Projekt-->Compilereinstellungen-->Quelltext"
2. "Smart-Linkbar" aktivieren
3. Menü "Projekt-->Compilereinstellungen-->Linken"
4. "Smart Linken" aktivieren


Viele Grüße, Euklid

Antworten