crosscompiler für programme mit ohne GUI

Für Installationen unter Linux-Systemen
Antworten
-the-
Beiträge: 4
Registriert: Mo 4. Aug 2014, 14:28

crosscompiler für programme mit ohne GUI

Beitrag von -the- »

Hallo,

ich bin hier neu.
Als alter Delphi-Programmierer finde ich die theoretische Möglichkeit über eine IDE für verschiede Plattformen Programme zu schreiben und zu kompilieren fantastisch.
LEIDER, LEIDER habe ich noch keine wirklich durchgängig funktionierende Anleitung zur Einrichtung einer solchen IDE unter Linux (KUBUNTU 14.04 LTS) gefunden.

mit den folgenden Anleitungen:
http://wiki.lazarus.freepascal.org/Cross_compiling/de
viewtopic.php?f=1&t=3361
und diesen Quellen:
http://sourceforge.net/projects/lazarus ... s%201.2.4/

ist mir einiges gelungen:

Erstellen einfacher Consolenanwendungen (nix GUI) für folgende Zielplattformen:
:mrgreen: DOS(i386-win32, x86_64-win64), i386-linux, x86_64-linux, arm-linux

Leider sieht es bei GUI-Applikationen gar nicht so gut aus.
:mrgreen: i386-Win32
:mrgreen: x86_64-Win64
:mrgreen: x86_64-linux

:( i386-linux
->kompilieren bzw. aufräumen & kompilieren

Code: Alles auswählen

...
/usr/share/lazarus/1.2.4/lcl/interfaces/gtk2/gtk2callback.inc(2257,30) Hint: Mixing signed expressions and longwords gives a 64bit result
»Kompiliere Package LCL 1.2.4« beendet
/usr/bin/ld: warning: link.res contains output sections; did you forget -T?
/usr/bin/ld: cannot find -lX11
/usr/bin/ld: cannot find -lgdk_pixbuf-2.0
/usr/bin/ld: cannot find -lgtk-x11-2.0
/usr/bin/ld: cannot find -lgdk-x11-2.0
/usr/bin/ld: cannot find -lgobject-2.0
/usr/bin/ld: cannot find -lglib-2.0
/usr/bin/ld: cannot find -lgthread-2.0
/usr/bin/ld: cannot find -lgmodule-2.0
/usr/bin/ld: cannot find -lpango-1.0
/usr/bin/ld: cannot find -lcairo
/usr/bin/ld: cannot find -latk-1.0
testGui.lpr(20,1) Error: Error while linking
testGui.lpr(20,1) Fatal: There were 1 errors compiling module, stopping
 


:( arm/linux
->kompilieren bzw. aufräumen & kompilieren

Code: Alles auswählen

»Kompiliere Package FCL 1.0.1« beendet
»Kompiliere Package LazUtils 1.0« beendet
»Kompiliere Package LCLBase 1.2.4« beendet
»Kompiliere Package LCL 1.2.4« beendet
Einstellungen geändert, sauberes Neucompilieren mit -B
/usr/bin/arm-linux-ld: warning: link.res contains output sections; did you forget -T?
/usr/bin/arm-linux-ld: cannot find -lpthread
/usr/bin/arm-linux-ld: cannot find -lX11
/usr/bin/arm-linux-ld: cannot find -lgdk_pixbuf-2.0
/usr/bin/arm-linux-ld: cannot find -lgtk-x11-2.0
/usr/bin/arm-linux-ld: cannot find -lgdk-x11-2.0
/usr/bin/arm-linux-ld: cannot find -lgobject-2.0
/usr/bin/arm-linux-ld: cannot find -lglib-2.0
/usr/bin/arm-linux-ld: cannot find -lgthread-2.0
/usr/bin/arm-linux-ld: cannot find -lgmodule-2.0
/usr/bin/arm-linux-ld: cannot find -lpango-1.0
/usr/bin/arm-linux-ld: cannot find -lcairo
/usr/bin/arm-linux-ld: cannot find -latk-1.0
/usr/bin/arm-linux-ld: cannot find -ldl
/usr/bin/arm-linux-ld: cannot find -lc
testGui.lpr(22) Error: Error while linking
testGui.lpr(22) Fatal: There were 1 errors compiling module, stopping
 


ich gehe mal davon aus dass entweder diverse compilerschalter auf die richtigen Verzeichnisse (fp.cfg) fehlen oder ich noch irgendwo Pakete nachkopieren muss (fremde Umgebung).

Kann mir da jemand entscheidende Tipps geben???

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

Re: crosscompiler für programme mit ohne GUI

Beitrag von theo »

Naja, Grundsätzlich fehlen dir die Pakete, die da angemahnt sind, bzw. die Entsprechenden devel Pakete.
Z.B. libX11-devel

Einfacher wäre vllt. ein spezifisches Lazarus Paket für deine Distri zu installieren.
http://wiki.lazarus.freepascal.org/Getting_Lazarus/de

-the-
Beiträge: 4
Registriert: Mo 4. Aug 2014, 14:28

Re: crosscompiler für programme mit ohne GUI

Beitrag von -the- »

Danke Teo,

aber wer will es schon leicht haben. :oops:
Ich kann ja Win32/64 Programme auch einfach so erstellen.

und habe mir die /lib & /usr/lib von einer i386 installation (mit allen devs) herunterkopiert.
Irgendwie fehlt mir der Schlüssel wo und wie ich diese Verzeichnisse aktiviere oder ob ich woanders hänge.

PS: werde das ganze auch noch mit osx(darwin) ausprobieren, sobald ich die DVD meines Mac gefunden habe.

Ich finde es schon komisch das allerlei Artikel über die Möglichkeit des Crosscompilerens existieren, aber es für Linux keine fertige Umgebung oder eine wirklich komplette Anleitung zur Erstellung einer solchen gibt.
Das würde der Umgebung Laszarus einen ganz anderen Anschub geben.

:( :( :(

Weiß noch jemand Rat???

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: crosscompiler für programme mit ohne GUI

Beitrag von Christian »

Ich find es merkwürdig das es so viele Leute gibt die wissen was gut für Open Source Programme wäre aber nicht den kleinen Finger krumm machen um es zu realisieren.

Arbeite dich in die von DIR verwendete Distribution ein klein wenig ein und du wirst in der Lage sein das Problem zu beheben.
Das problem ist Distributions abhängig da die Paket je mach Distri anders heissen da du uns verschweigst was du da hast wird dir keiner ausser dir helfen können.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

-the-
Beiträge: 4
Registriert: Mo 4. Aug 2014, 14:28

Re: crosscompiler für programme mit ohne GUI

Beitrag von -the- »

Ja Ja,
ich bin so geheimnisvoll daß ich bereits in meinem ersten Post geschrieben habe daß ich Kubuntu 14.04 LTS einsetzte.
Die Pakete habe ich direkt von sourceforge....

Und da diese Postings öffentlich sind denke ich es ist eine gute Art gemeinsam einen vernünftigen Lösungsweg für diese Problematik zu erarbeiten oder auf die übersehende Doku zu verlinken.
Aber wer bin ich schon??? :oops: :oops:

Grundsätzlich wäre ich an einer Lösung interessiert. Wenn das in diesem Forum möglich ist, SUPER. Teamwork ist toll.

Wie gesagt: Ich bin verwundert das ich Win32/64 (Gui)- / sowie Consolen-Programme an Hand der vorliegenden Beschreibungen erzeugen kann, aber an ARM/i386 (Gui) scheitere.

Ein zielführenden Hinweis sehe ich in den bisherigen Antworten nicht.
Was die Frage aufwirft: Habt Ihr sowas schon am laufen?????

Ich verfolge den Weg das Postings/Dokumentation nicht wie der Weg zur " isla de muerta" sein sollen.
"...Nur wer Kurs zur ihr kenn kennt findet dorthin..." (Fluch der Karibik)

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

Re: crosscompiler für programme mit ohne GUI

Beitrag von theo »

Es hängt halt damit zusammen, wie Linxu bzw. deine Distro funktioniert.
Ob du einfach Verzeichnisse kopieren kannst, bezweifle ich.

Ich habe kein Ubuntu sondern OpenSuse. Dort kann man alle 32bit Packages nachinstallieren.
Die heissen dann z.B.
libcairo2-32bit
libgdk_pixbuf-2_0-0-32bit
etc.

Vllt. brauchst du auch noch
cross-i386-binutils

Einfach installieren bis es klappt. (Ich hab das nciht gemacht, ich habe dafür VirtualBox Installationen)

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: crosscompiler für programme mit ohne GUI

Beitrag von Christian »

Sry habs erste Posting zu sehr überflogen. Mich hat nur geärgert das du meckerst das es nichts fertig gibt aber keine anstände machst dich weiterzubilden sondern eine Lösung einforderst.
So nun gut, ich versuch mal etwas konstruktiver zu werden ;)

Also normalerweise installierst du die packages so:

/usr/bin/ld: cannot find -lpango-1.0

apt-get install libpango > tab

ergibt in meinem fall
libpango1.0-0 libpango1-ruby1.8 libpangomm-1.4-dev
libpango-1.0-0 libpango1-ruby1.8-dbg libpangomm-1.4-doc
libpango1.0-0-dbg libpangocairo-1.0-0 libpango-perl
libpango1.0-dev libpangoft2-1.0-0 libpangox-1.0-0
libpango1.0-doc libpangomm-1.4-1 libpangox-1.0-dev
libpango1-ruby libpangomm-1.4-dbg libpangoxft-1.0-0

apt-get install libpango1.0-dev

würde dann die entsprechende lib installieren.
für arm hab ich das tatsächlich bisher nur auf dem zielsystem kompiliert, unter linux nach linux crosszucompilieren ist tatsächlich recht schwer einzurichten. Sogar nach i386 gibts da probleme.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

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

Re: crosscompiler für programme mit ohne GUI

Beitrag von Mathias »

So wie ich sehe, ist Lazarus selbst schon auf Cosscompilierung vorbereitet.

Unter Project/Projecteinstellungen.../Konfiguration und Ziele/Zielplattform kann man alles mögliche für Plattformen einstellen.

Die grössere Schwierigkeit liegt daran, dies an Free-Pascal beizubringen.

Das einzige was ich bis jetzt fertig gebracht habe, ist Win32 und Win64 gleichtzeitig zu kompilieren.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

-the-
Beiträge: 4
Registriert: Mo 4. Aug 2014, 14:28

Re: crosscompiler für programme mit ohne GUI

Beitrag von -the- »

Danke Mathias,
grundsätzlich stimme ich Dir zu.

Crosscompiling selber läuft. Als ConsolenApps kann ich mittlerweile alles Mögliche erstellen.

Jedoch sind für die Compilierung der LCL (GUI-Apps) zu manchen Plattformen weitere libs von der Zielplattform notwendig.
An die ist jedoch heranzukommen. Wichtiger ist wie man diese in den Compilerlauf einbindet, damit der Linker sie findet.

Ich habe mittlerweile auch schon Versuche unternommen die Plattform via "fpcup" zu installieren.
Die gefundene Dokumentation ist bisher auch nicht der Bringer.
Dabei habe ich folgenden 7z-File gefunden: https://bitbucket.org/reiniero/fpcup/do ... ls_libs.7z

Dort enthalten sind Verzeichnisse mit den entsprechenden libs.
Es geht dann !?NUR?! noch darum diese richtig einzubinden.

Antworten