[gelöst] Laz1.9 unter Mint 18.2 und Crosscompiling

Für Installationen unter Linux-Systemen
Benutzeravatar
kralle
Lazarusforum e. V.
Beiträge: 988
Registriert: Mi 17. Mär 2010, 14:50
OS, Lazarus, FPC: Linux Mint 20 , FPC 3.3.1 , Lazarus 2.1.0 -Win10 & XE7Pro
CPU-Target: 64Bit
Wohnort: Bremerhaven
Kontaktdaten:

[gelöst] Laz1.9 unter Mint 18.2 und Crosscompiling

Beitrag von kralle »

Hallo Leute,

ich werde langsam irre.
Ich habe mein Notbook komplett neu aufgesetzt.
OS: Linux Mint 18.2 Cinnamon 64-Bit
FPC: 3.0.2
LAZ: 1.9.0

Lazarus selber funktioniert, aber wenn ich wieder alles für das Crosscompiling einrichte, dann klappt das nicht.
Für Linux -> Win32 nutze ich das hier:

Nachfolgende Zeilen werden nacheinander in einem Terminal-Fenster eingegeben, das in diesem Verzeichnis „/home/laz-user/fpc-3.0.2“
(laz-user gegen Deinen Usernamen ersetzen) gestartet wird :
(Das „$“-Zeichen braucht Ihr nicht mit eingeben.)

$ sudo make all OS_TARGET=win32 CPU_TARGET=i386

und dann

$ sudo make crossinstall OS_TARGET=win32 CPU_TARGET=i386

Auch wenn man laut Wiki damit schon fertig ist, fehlen noch ein paar Anweisungen.

In der Datei „/etc/fpc.cfg „ müssen im Abschnitt

# --------------------------------
# Set Filename und Paths
# --------------------------------

noch diese Zeilen eingefügt werden:

# For Crosscompiling
-Fu/usr/local/lib/fpc/$fpcversion/units/$fpctarget/*

Die Datei ist zumindest bei mir schreibgeschützt und kann nur in einem Terminal-Fenster geöffnet werden, das mittels „Als Systemverwalter öffnen“ geöffnet wurde.

Jetzt kommt noch ein symbolischer Link der in einem Terminalfenster eingegeben wird:

$ sudo ln -s /usr/local/lib/fpc/3.0.2/ppcross386 /usr/bin/

Alles läuft problemlos durch. Ich konfiguriere dann naoch die "Erstellmodi" und die Einbindung von "WINE".
Wenn ich dann aber den Erstellmodus auf "Win 32" ändere, erhalte ich die Fehlermeldung
Compiler "/usr/bin/fpc" unterstützt nicht das Ziel i386-win32"

Laut Wiki, soll diese Meldung am häufigsten kommen, wenn man in der "fpc.cfg" etwas falsch eingetragen hat.
Ich habe schon mehrfach Zeichen für Zeichen verglichen, ob ich alles richtig eingetragen habe ohne einen Fehler zu finden.
Was mich richtig irre macht, ist die Tatsache, dass es in einer VM Problemlos funktioniert.

Was kann noch Ursache für die Fehlermeldung sein?

Gruß Heiko
Zuletzt geändert von kralle am Fr 14. Jul 2017, 11:47, insgesamt 1-mal geändert.
OS: Manjaro Linux, Debian und Windows 10
FPC-Version: 3.2.2 , Lazarus 3.0
+ Delphi XE7SP1

Mathias
Beiträge: 6160
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Laz1.9 unter Mint 18.2 und Crosscompiling

Beitrag von Mathias »

Ich habe es auf die konventionelle Wiese nie Crosss-Compiling hingekriegt.

Es seit ich dfpcupdeluxe verwende, habe auch ich es geschafft. Unterdessen kann ich damit neben Windows auch Raspi-Anwendungen erzeugen. Und dies sogar mit FPC und Lazarus Trunk.

https://github.com/newpascal/fpcupdeluxe
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Benutzeravatar
kralle
Lazarusforum e. V.
Beiträge: 988
Registriert: Mi 17. Mär 2010, 14:50
OS, Lazarus, FPC: Linux Mint 20 , FPC 3.3.1 , Lazarus 2.1.0 -Win10 & XE7Pro
CPU-Target: 64Bit
Wohnort: Bremerhaven
Kontaktdaten:

Re: Laz1.9 unter Mint 18.2 und Crosscompiling

Beitrag von kralle »

Moin,
Mathias hat geschrieben:Ich habe es auf die konventionelle Wiese nie Crosss-Compiling hingekriegt.

ich schon und es frustiert mich so, das es jetzt zickt.
Mathias hat geschrieben:Es seit ich dfpcupdeluxe verwende, habe auch ich es geschafft. Unterdessen kann ich damit neben Windows auch Raspi-Anwendungen erzeugen. Und dies sogar mit FPC und Lazarus Trunk.
https://github.com/newpascal/fpcupdeluxe

Sollte ich vielleicht auch Anfangen zu nutzen.
Aber, ich möchte natürlich auch gerne wissen, warum es auf dem einem System funktioniert und auf dem anderen nicht.

Gruß Heiko
OS: Manjaro Linux, Debian und Windows 10
FPC-Version: 3.2.2 , Lazarus 3.0
+ Delphi XE7SP1

Mathias
Beiträge: 6160
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Laz1.9 unter Mint 18.2 und Crosscompiling

Beitrag von Mathias »

Aber, ich möchte natürlich auch gerne wissen, warum es auf dem einem System funktioniert und auf dem anderen nicht.

Dies ist schon irgendwie merkwürdig, jede Trunk ist etwas anders.
Unter Windows hatte ich es nicht mal ein einfaches "make all" geschafft.

Sollte ich vielleicht auch Anfangen zu nutzen.

Was ich noch sagen muss, vor etwa einem 1/2 Jahr hatte dies schon mal probiert, aber ohne Erfolg, aber unterdessen scheint fpcupdeluxe erwachsen zu werden.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Benutzeravatar
kralle
Lazarusforum e. V.
Beiträge: 988
Registriert: Mi 17. Mär 2010, 14:50
OS, Lazarus, FPC: Linux Mint 20 , FPC 3.3.1 , Lazarus 2.1.0 -Win10 & XE7Pro
CPU-Target: 64Bit
Wohnort: Bremerhaven
Kontaktdaten:

Re: [gelöst] Laz1.9 unter Mint 18.2 und Crosscompiling

Beitrag von kralle »

Moin,

so jetzt läuft es auch auf dem Notebook.
Ich habe nur ein paar Sachen meiner Anleitung überarbeiten müssen.
Für den den es interessiert lege ich die aktuelle Anleitung bei.

Gruß Heiko
Dateianhänge
Lazarus XCompiling 1_9._0.pdf
Crosscompiling Anleitung Linux Mint 18.2 und Lazarus 1.9
(662.85 KiB) 218-mal heruntergeladen
OS: Manjaro Linux, Debian und Windows 10
FPC-Version: 3.2.2 , Lazarus 3.0
+ Delphi XE7SP1

Mathias
Beiträge: 6160
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: [gelöst] Laz1.9 unter Mint 18.2 und Crosscompiling

Beitrag von Mathias »

In der vorherigen Anleitung (unter Linux Mint 17.3) gab es noch die Möglichkeit in einem
64-Bit Linux eine 32-Bit Linux-Anwendung zu erstellen.
Das ist durch Änderungen seitens Linux Mint ab Version 18.1 nicht mehr möglich.


FPCUPdeluxe erzeugt immerhin ein 32Bit FPC

Code: Alles auswählen

Crosscompiler for i386-win32 found !
Crosscompiler for i386-linux found !
Crosscompiler for arm-linux found !

Wen ich anschliessend mit Lazarus eine 32Bit Anwendung kompilieren will, bricht er beim Linker ab.

Code: Alles auswählen

Hint: (11030) Start of reading config file /home/tux/fpcupdeluxe/fpc/bin/x86_64-linux/fpc.cfg
Hint: (11031) End of reading config file /home/tux/fpcupdeluxe/fpc/bin/x86_64-linux/fpc.cfg
Free Pascal Compiler version 3.1.1-r20:36723 [2017/07/14] for i386
Copyright (c) 1993-2017 by Florian Klaempfl and others
(1002) Target OS: Linux for i386
(3104) Compiling project1.pas
(9022) Compiling resource /n4800/windows_test/lib/i386-linux/project1.or
(9015) Linking project1
/home/tux/fpcupdeluxe/fpc/units/i386-linux/rtl/si_c21.o: In function `SI_C21_$$__FPC_LIBC21_START':
si_c21.pp:(.text.n_si_c21_$$__fpc_libc21_start+0x27): undefined reference to `__libc_csu_fini'
si_c21.pp:(.text.n_si_c21_$$__fpc_libc21_start+0x2c): undefined reference to `__libc_csu_init'
/n4800/windows_test/project1.pas(20,1) Error: (9013) Error while linking
/n4800/windows_test/project1.pas(20,1) Fatal: (10026) There were 1 errors compiling module, stopping
Fatal: (1018) Compilation aborted
Error: /home/tux/fpcupdeluxe/fpc/bin/x86_64-linux/ppcross386 returned an error exitcode

Vielleicht hilft dir diese Meldung weiter.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Benutzeravatar
kralle
Lazarusforum e. V.
Beiträge: 988
Registriert: Mi 17. Mär 2010, 14:50
OS, Lazarus, FPC: Linux Mint 20 , FPC 3.3.1 , Lazarus 2.1.0 -Win10 & XE7Pro
CPU-Target: 64Bit
Wohnort: Bremerhaven
Kontaktdaten:

Re: [gelöst] Laz1.9 unter Mint 18.2 und Crosscompiling

Beitrag von kralle »

Moin,

Du willst eine 32-Bit-Anwendung erstellen - richtig?
Und warum liest Du dann die 64-Bit Konfiguration ein?
Hint: (11030) Start of reading config file /home/tux/fpcupdeluxe/fpc/bin/x86_64-linux/fpc.cfg
Hint: (11031) End of reading config file /home/tux/fpcupdeluxe/fpc/bin/x86_64-linux/fpc.cfg


Gruß Heiko
OS: Manjaro Linux, Debian und Windows 10
FPC-Version: 3.2.2 , Lazarus 3.0
+ Delphi XE7SP1

Mathias
Beiträge: 6160
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: [gelöst] Laz1.9 unter Mint 18.2 und Crosscompiling

Beitrag von Mathias »

Du willst eine 32-Bit-Anwendung erstellen - richtig?
Und warum liest Du dann die 64-Bit Konfiguration ein?

An der fpc.cfg habe ich selbst nichts geändert.
Linux64/Win32/Win64 und ARM laufen.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Benutzeravatar
kralle
Lazarusforum e. V.
Beiträge: 988
Registriert: Mi 17. Mär 2010, 14:50
OS, Lazarus, FPC: Linux Mint 20 , FPC 3.3.1 , Lazarus 2.1.0 -Win10 & XE7Pro
CPU-Target: 64Bit
Wohnort: Bremerhaven
Kontaktdaten:

Re: [gelöst] Laz1.9 unter Mint 18.2 und Crosscompiling

Beitrag von kralle »

Ja, aber auch in der letzte Zeile der Fehlermeldung
Error: /home/tux/fpcupdeluxe/fpc/bin/x86_64-linux/ppcross386 returned an error exitcode

steht das im 64-Bit Verzeichnis etwas ausgeführt werden soll.
Obwohl "ppcross386" sollte richtig sein.

Irgendwie habe ich das Gefühl, das dort bei der 32-Bit-Erzeugung etwas vermischt wird?

Müsste ich mich mal näher mit beschäftigen. Jetzt nervt mich erstmal FlameRobin :cry:

Gruß Heiko
OS: Manjaro Linux, Debian und Windows 10
FPC-Version: 3.2.2 , Lazarus 3.0
+ Delphi XE7SP1

Mathias
Beiträge: 6160
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: [gelöst] Laz1.9 unter Mint 18.2 und Crosscompiling

Beitrag von Mathias »

Jetzt nervt mich erstmal FlameRobin

Was ist dies wieder für eine Sprache ? :roll:
Schon wieder was neues. :roll:

Obwohl "ppcross386" sollte richtig sein.

Ist dieser Compiler für Win32 oder Linux32 ?
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Benutzeravatar
kralle
Lazarusforum e. V.
Beiträge: 988
Registriert: Mi 17. Mär 2010, 14:50
OS, Lazarus, FPC: Linux Mint 20 , FPC 3.3.1 , Lazarus 2.1.0 -Win10 & XE7Pro
CPU-Target: 64Bit
Wohnort: Bremerhaven
Kontaktdaten:

Re: [gelöst] Laz1.9 unter Mint 18.2 und Crosscompiling

Beitrag von kralle »

Moin,

Mathias hat geschrieben:
Jetzt nervt mich erstmal FlameRobin

Was ist dies wieder für eine Sprache ? :roll:

Datenbankverwaltungstool

Obwohl "ppcross386" sollte richtig sein.

Ist dieser Compiler für Win32 oder Linux32 ?[/quote]

Hmm, habe ich bis jetzt nicht rausfinden können.

Gruß Heiko
OS: Manjaro Linux, Debian und Windows 10
FPC-Version: 3.2.2 , Lazarus 3.0
+ Delphi XE7SP1

Mathias
Beiträge: 6160
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: [gelöst] Laz1.9 unter Mint 18.2 und Crosscompiling

Beitrag von Mathias »

Wenn man eine Win32 / Win64-Anwendung einfach mittels F9 im Debug-Modus startet,
erhält man nach dem schliessen der Anwendung folgende Meldung:
Einfach auf „Halt“ klicken und Lazarus läuft normal weiter.
Vielleicht hat ja jemand eine Lösung für dieses kleine Problem und teilt sie mir mit.

Ich habe eine gefunden, auch wen sie nicht perfekt ist.
Werkzeuge/Einstellungen../Debugger/Allgemein/Debuggerty und -pfad auf (none)

Nur dann ist der Debugger auch für Linux-Programme weg.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Benutzeravatar
kralle
Lazarusforum e. V.
Beiträge: 988
Registriert: Mi 17. Mär 2010, 14:50
OS, Lazarus, FPC: Linux Mint 20 , FPC 3.3.1 , Lazarus 2.1.0 -Win10 & XE7Pro
CPU-Target: 64Bit
Wohnort: Bremerhaven
Kontaktdaten:

Re: [gelöst] Laz1.9 unter Mint 18.2 und Crosscompiling

Beitrag von kralle »

Moin,

Mathias hat geschrieben:Ich habe eine gefunden, auch wen sie nicht perfekt ist.
Werkzeuge/Einstellungen../Debugger/Allgemein/Debuggerty und -pfad auf (none)

Nur dann ist der Debugger auch für Linux-Programme weg.

Nee, das lasse ich lieber, sonst sucht man sich wieder Tod, weil keine Debug-Infos kommen.
Leider gibt es in den Erstell-Modi, keinen entsprechenden Punkt.

Dann muß das erstmal so bleiben.

Gruß Heiko
OS: Manjaro Linux, Debian und Windows 10
FPC-Version: 3.2.2 , Lazarus 3.0
+ Delphi XE7SP1

thosch
Beiträge: 324
Registriert: Mo 10. Jul 2017, 20:32

Re: [gelöst] Laz1.9 unter Mint 18.2 und Crosscompiling

Beitrag von thosch »

Leider braucht meine herunter geladene Linux Mint Version, deren Download wegen Bandbreitebegrenzung eine ganze Weile gedauert hat, weitere herunter zu ladende Dateien. Daher bleibe ich bei Knoppix. Habe die nicht funktionierende Lazarus 1.8.0 wieder deinstalliert und im Wine die Windows Version installiert. Die läuft. Dazu noch das fpcupdeluxe.zip Paket runter geladen, das ich demnächst intallieren werde. Voerst genügt die Windows Version von Lazarus vollkommen. Erst wenn ich ein damit entwickeltes Programm habe, für das eine Crosscompilierung lohnt, brauche ich fpcupdeluxe wirklich. Und das habe ich ja schon auf meinem Rechner.

Mathias
Beiträge: 6160
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: [gelöst] Laz1.9 unter Mint 18.2 und Crosscompiling

Beitrag von Mathias »

Nee, das lasse ich lieber, sonst sucht man sich wieder Tod, weil keine Debug-Infos kommen.

Ich weis nicht wie du das machst.
Ich entwickle mit Linux, und Windows brauche ich erst zum Schluss, wen es fertig ist, oder schnell etwas testen will.

Ich ziehe in der Regel ein zweites Lazarus mit Wine/VB einer Crosscompilierung vor.
Wie du schon sagst, das Einrichten ist sehr Zeit-intensiv. Und wen man mal Lazarus abschiesst, geht das Ganze wieder von vorn los.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Antworten