Write once - Compile Everythere???

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
linopolus
Beiträge: 24
Registriert: Fr 13. Feb 2009, 08:27
OS, Lazarus, FPC: Arch Linux, 2.9.27, 2.2.5
CPU-Target: Pentium4 Northwood
Wohnort: /home/linopolus

Write once - Compile Everythere???

Beitrag von linopolus »

Hallo

Wie kann das sein, wo doch unter Windows die WinAPI und unter Linux GTK/QT verwendet wird(von Lazarus und OS)???
Gruß, linopolus

marcov
Beiträge: 1100
Registriert: Di 5. Aug 2008, 09:37
OS, Lazarus, FPC: Windows ,Linux,FreeBSD,Dos (L trunk FPC trunk)
CPU-Target: 32/64,PPC(+64), ARM
Wohnort: Eindhoven (Niederlande)

Re: Write once - Compile Everythere???

Beitrag von marcov »

linopolus hat geschrieben:Wie kann das sein, wo doch unter Windows die WinAPI und unter Linux GTK/QT verwendet wird(von Lazarus und OS)???


Abstrahieren von GUI Features, und harter Arbeit.

monta
Lazarusforum e. V.
Beiträge: 2809
Registriert: Sa 9. Sep 2006, 18:05
OS, Lazarus, FPC: Linux (L trunk FPC trunk)
CPU-Target: 64Bit
Wohnort: Dresden
Kontaktdaten:

Re: Write once - Compile Everythere???

Beitrag von monta »

Es wird halt je nach System unterschiedlich durchgereicht. Setzt natürlich voraus, das du selbst als programmierer nicht auf Plattformabhängige Sachen zugreifst. Bspw. direkt das WinApi anzusprechen geht zwar teilweise, aber dann natürlich nur unter Windows.
Johannes

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: Write once - Compile Everythere???

Beitrag von Christian »

Das gth nicht nur teilweise sondern unter Windows natürlich komplett. Unter Linux und MacOS kann man sogar tele der Winapi auch benutzen da dafür Wrapper Funktionne geschrieben wurden aber nur ganz häufig genutzte Funktionen.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

linopolus
Beiträge: 24
Registriert: Fr 13. Feb 2009, 08:27
OS, Lazarus, FPC: Arch Linux, 2.9.27, 2.2.5
CPU-Target: Pentium4 Northwood
Wohnort: /home/linopolus

Re: Write once - Compile Everythere???

Beitrag von linopolus »

Also Lazarus guckt, was das grad für nen System ist, und kompiliert dann mit dem, was für das System geht. Also ich mache eine Anwendung unter Windows und der speichert nicht WinAPI soundso ist da und da sondern ein button ist da und da. Verstehe.
Gruß, linopolus

Hitman
Beiträge: 512
Registriert: Mo 25. Aug 2008, 18:17
OS, Lazarus, FPC: ArchLinux x86, WinVista x86-64, Lazarus 0.9.29, FPC 2.4.1
CPU-Target: x86
Wohnort: Chemnitz

Re: Write once - Compile Everythere???

Beitrag von Hitman »

Naja nicht ganz, aber so ähnlich. Immerhin kannst du z.B. QT und GTK auch unter Windows und MacOS betreiben, wohingegen WinAPI und Carbon jeweils exklusiv Windows bzw. MacOS sind.

marcov
Beiträge: 1100
Registriert: Di 5. Aug 2008, 09:37
OS, Lazarus, FPC: Windows ,Linux,FreeBSD,Dos (L trunk FPC trunk)
CPU-Target: 32/64,PPC(+64), ARM
Wohnort: Eindhoven (Niederlande)

Re: Write once - Compile Everythere???

Beitrag von marcov »

Hitman hat geschrieben:Naja nicht ganz, aber so ähnlich. Immerhin kannst du z.B. QT und GTK auch unter Windows und MacOS betreiben,
wohingegen WinAPI


Nein: (lib)wine.

Wine ist natuerlich nicht der erster Wahl, aber das ist QT und GTK auf Windows auch nicht.

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

Re: Write once - Compile Everythere???

Beitrag von creed steiger »

Der große Vorteil ist doch das man ohne großen
Aufwand genau für das Zielsystem passende
Programme erstellen kann (Win/Winapi,Linux QT/GTK etc.)

Wine ist doch eh nur ein Behelf und kein Ausgangspunkt
für eine Programmentwicklung.

marcov
Beiträge: 1100
Registriert: Di 5. Aug 2008, 09:37
OS, Lazarus, FPC: Windows ,Linux,FreeBSD,Dos (L trunk FPC trunk)
CPU-Target: 32/64,PPC(+64), ARM
Wohnort: Eindhoven (Niederlande)

Re: Write once - Compile Everythere???

Beitrag von marcov »

creed steiger hat geschrieben:Der große Vorteil ist doch das man ohne großen
Aufwand genau für das Zielsystem passende
Programme erstellen kann (Win/Winapi,Linux QT/GTK etc.)


Immer versucht etwas das von Linux kommt mit gcc auf Windows zu kompilieren ? Ja es geht in theorie, aber da ist auch alles mit gesagt.

Wine ist doch eh nur ein Behelf und kein Ausgangspunkt
für eine Programmentwicklung.


IMHO ist die heutige Situation von mingw/cygwin auf Windows auch
nur ein Behelf. Sie emulieren ein grosse Menge Unix Prinzipen auf Windows.

KOBOLD Messring GmbH
Beiträge: 155
Registriert: Mi 22. Aug 2007, 14:52
OS, Lazarus, FPC: Mandriva Linux 2008 (L 0.9.28 FPC 2.2.4)
CPU-Target: 32Bit
Wohnort: 65719 Hofheim am Taunus
Kontaktdaten:

Re: Write once - Compile Everythere???

Beitrag von KOBOLD Messring GmbH »

Im Wiki zu Cross-Compiling steht, dass man z.B. unter Linux als Zielplattform durchaus Windows einstellen kann und die erhaltene .exe-Datei dann z.B. mit Wine direkt ausprobieren kann.
¿Habt Ihr das schon mal gemacht?
Ich habe da folgenden merkwürdigen Effekt (ich glaube aber, das ist Wine-spezifisch und KEIN Lazarus-Bug):
Nimmt man den Win32/64 Widgetset funktioniert die .exe unter Linux mit Wine (fast) perfekt.
Man beachte jedoch Kleinigkeiten: Alle-Icons und TImages stehen auf dem Kopf, ausser das "produced mit Lazarus"!? Nimmt man aber GTK2 als Widgetset, dann sieht die Anwendung nicht mehr so aus wie gedacht, sondern total verzockt (siehe beide Screenshots). Ich denke aber, dafür gibt es keine Abhilfe, das ist Wine. Nur generell habe ich auch folgende Erfahrung gemacht: Delphi-Programme laufen im Allgemeinen sehr gut mit Wine, andere Programme für Windows, die unter Wine nicht laufen, zeigen irgendwann auch unter Windows direkt ihre Macken und schmieren ab.
Lazarus-Programme (mit win32-widgetset) laufen auch sehr gut mit Wine, wenn man von Kleinigkeiten absieht.
Ich mach das crosscompiling so: Für Linux direkt auf meiner Mandriva-Arbeitsstation, Für Windows unter VMWare, wo ein WinXP läuft, dann kann man direkt mit Alt-Tab zwischen den beiden Betriebssystemen hin- und herschalten und hat (fast) "native" Bedingungen für beide Plattformen.
Dateianhänge
wine-gtk2-exe.png
wine-win32-exe.png

Antworten