ich steht mal wieder bzgl. Installation auf dem Schlauch. Ich versuche gerade, mir FPC auf Linux für das Cross-Compiling einzurichten. Bisher habe ich immer mit den Binär-Pakten gearbeitet. Die sind ja immer nur für ein Target eingerichtet. So wie ich das verstanden habe, muss ich mir für das Crosscompiling das FPC komplett neu z.B. aus dem Trunk compilieren. Ich habe nun mittels SVN den Trunk direkt neben mein bestehendes FPC gespeichert. Ich habe also 2 FPC-Versionen auf dem Rechner:
- /usr/share/fpcsrc/2.2.4 und
- /usr/share/fpcsrc/trunk
Was muss ich ab jetzt machen, um den Trunk zu meinem FPC für Lazarus zu machen. Eingabe von 'fpc' in ein Terminal gibt mir die Version 2.2.4-3 aus. Die brauche ich ja auf jeden Fall noch, um FPC zu übersetzen. Ich habe jetzt 2 Möglichkeiten gefunden, FPC zu kompilieren:
nach FPC-Beispielbuch als PDF:
Code: Alles auswählen
sudo make all OS_TARGET=win32 CPU_TARGET=i386
sudo make crossinstall OS_TARGET=win32 CPU_TARGET=i396
Code: Alles auswählen
Das Projekt nutzt die Ziele OS-win32 und CPU=i386.
Die system.ppu für dieses Ziel wurden nicht in den Bbinärverzeichnissen von FPC gefunden.
Stellen Sie sicher, dass fpc für diese Zielplattform richtig installiert ist und dann die fpc.cfg die richtigen Verzeichnisangaben enthält.
Code: Alles auswählen
sudo ./create_fpc_deb.sh fpc /usr/share/fpcsrc/trunk
sudo ./create_fpc_deb.sh fpcsrc /usr/share/fpcsrc/trunk
Code: Alles auswählen
........
Free Pascal Compiler version 2.2.4-3 [2009/06/03] for i386
Copyright (c) 1993-2008 by Florian Klaempfl
Target OS: Linux for i386
Compiling /home/wolfz/tmp/fpc/test.pas
Linking /home/wolfz/tmp/fpc/test
/usr/bin/ld: warning: link.res contains output sections; did you forget -T?
/usr/bin/ld: cannot find -lgpm
test.pas(4,7) Error: Error while linking
test.pas(4,7) Fatal: There were 1 errors compiling module, stopping
Fatal: Compilation aborted
Error: /usr/bin/ppc386 returned an error exitcode (normal if you did not specify a source file to be compiled)
Code: Alles auswählen
program test;
{$linklib gpm}
{$linklib ncurses}
begin end.
Ich habe übrigens auch die /etc/fpc.conf provisorisch angepasst:
Code: Alles auswählen
# searchpath for units and other system dependent things
# -Fu/usr/lib/fpc/$fpcversion/units/$fpctarget
# -Fu/usr/lib/fpc/$fpcversion/units/$fpctarget/*
# -Fu/usr/lib/fpc/$fpcversion/units/$fpctarget/rtl
-Fu/usr/lib/fpc/trunk/units/$fpctarget
-Fu/usr/lib/fpc/trunk/units/$fpctarget/*
-Fu/usr/lib/fpc/trunk/units/$fpctarget/rtl
#-Fu~/fpc/packages/base/*/units/;~/fpc/fcl/units/;~/fpc/rtl/units/
Ich würde gerne Lazarus einrichten für ARM-Linux. Das Beispiel oben für Windows auf Linux interessiert mich eigentlich weniger sondern nur, um zu verstehen, was da überhaupt passiert. Es wäre toll, wenn mir jemand das Verfahren im Zusammenhang erklären könnte.