Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Lazarus (IDE) (https://www.delphipraxis.net/81-lazarus-ide/)
-   -   Auf Windows Eine Konsolenanwendung für Linux schreiben (https://www.delphipraxis.net/161313-auf-windows-eine-konsolenanwendung-fuer-linux-schreiben.html)

NickelM 28. Jun 2011 20:39

Auf Windows Eine Konsolenanwendung für Linux schreiben
 
Hi zusammen,

Also erstmal worum es geht:
Ich schreibe grad mit ein paar Freunden ein Spiel unter Windows mit Delphi.
Nun, da dieses Spiel eine Multiplayerfunktion haben soll, und auf Server/Client System basieren soll, wollte ich eine Server als Konsolenanwendung schreiben (VCL oder Fensterorientiertes brauch es nicht, da es auch auf VServern laufen soll).
Da die meisten billigen VServern auf Linux laufen wegen Stabilität und Virussicherheit schätz ich mal, wäre ein Windows server etwas blöd.
Ich hab gelesen, das man mit Lazarus (nicht nur hier auch in anderen Foren), Programme und ich denk auch Konsolenanwendungen schreiben kann.
So, nun habe ich mir mal Lazarus gesaugt und geschaut (reimt sich xD) wie das geht. Da ich die Indy-Komponenten verwenden wollte (da ich jetzt ein bischen erfahrung damit habe), hab ich mir den Code für Lazarus gezogen und installiert. Das Test-Projekt ist gegebnüber Der Delphi-Version um etwa 1,3MB größer, davon abgesehen funkt es unter Windows. So jetzt habe ich mal weiter geschaut und gesehen, das ich einstellen kann, für was ich das Projekt kompilieren kann (Projekteinstellungen -> Codegenerieung -> Zielplatform : ist das richtig?).
So wenn ich das auf Linux umstelle und ok machen, meldet er mir das der SourceCode nicht existiert (system.ppu existestiert nicht für die Platform).

Jetzt zur eigentlichen Frage:
Da ich mich mit Linux/(Ubuntu, was ich mir in einer VM mal installiert habe zum testen, auserdem frage am rande : ist das gleich oder was ganz anderes?) 0,0 Periode auskenne und auch net eine andere Sprache dafür lernen möchte, will ich versuchen dass mit Pascal zumachen.
So wo kann ich mir den SourceCode zu Linux genau holen (bei SourceForge blick ich nicht mit dem Linux Zeug durch) und trotzdem unter Windows compilieren?
Oder langt dan auch FreePacal?

Gruß NickelM und danke im vorraus.

mkinzler 28. Jun 2011 20:45

AW: Auf Windows Eine Konsolenanwendung für Linux schreiben
 
Du könntest dir einen CrossCompiler für FreePascal compillieren.

NickelM 28. Jun 2011 20:57

AW: Auf Windows Eine Konsolenanwendung für Linux schreiben
 
Wie compilieren? Selber schreiben?
Oder gibt es einen SourceCode dafür wo man nur compilieren muss?

bernerbaer 28. Jun 2011 21:05

AW: Auf Windows Eine Konsolenanwendung für Linux schreiben
 
siehe hier

mschaefer 28. Jun 2011 21:13

AW: Auf Windows Eine Konsolenanwendung für Linux schreiben
 
Wäre für den Server vielleicht auch SOAP mit PHP eine Möglichkeit?

NickelM 28. Jun 2011 21:34

AW: Auf Windows Eine Konsolenanwendung für Linux schreiben
 
Hm...ich würde eigentlich gerne bei Pascal wie schon erwähnt bleiben, da ich schon Jahre nur damit programmiere. :lol:

@bernerbaer : hmmm okay dafür muss ich mir FreePascal holen gel? und diese make sachen muss ich dan bei FreePascal schreiben gel (ich weis das FreePascal eine Consolenanwendung ist)

Luckie 28. Jun 2011 21:36

AW: Auf Windows Eine Konsolenanwendung für Linux schreiben
 
Mit FreePascal solltest du auch unter Windows Linux Binaries compilieren können. Nur wirst du sie nicht ausführen und testen können unter Windows.

NickelM 28. Jun 2011 21:40

AW: Auf Windows Eine Konsolenanwendung für Linux schreiben
 
Das ist mir schon klar. Windows ist ja nicht Linux :lol:
Nur, kann ich da Indy verwenden?
Weil das Ding das Mein Windowsspiel mit dem Linux Server ja komunizieren muss.

Luckie 28. Jun 2011 21:41

AW: Auf Windows Eine Konsolenanwendung für Linux schreiben
 
Wenn es Indy für FreePascal gibt. Wenn nicht, da gibt es bestimmt andere Internetkomponentensammlungen.

Teekeks 28. Jun 2011 21:46

AW: Auf Windows Eine Konsolenanwendung für Linux schreiben
 
Es gibt Indy für Lazarus (welches FreePascal als Compiler nutzt).

BUG 28. Jun 2011 21:48

AW: Auf Windows Eine Konsolenanwendung für Linux schreiben
 
Zitat:

Zitat von mschaefer (Beitrag 1108705)
Wäre für den Server vielleicht auch SOAP mit PHP eine Möglichkeit?

Für rundenbasierte Spiele vielleicht, aber ob SOAP und PHP zusammen auf einer kleinen VM eine Option für ein Echtzeitspiel sind :mrgreen:


Wenn du dich auf Lazarus/FreePascal festlegst, würde ich mir an deiner Stelle erstmals keinen Kopf machen und programmunabhängig (!) unter Windows anfangen zu programmieren.
Wenn das soweit läuft das es sich lohnt, einen Server zu mieten, kann man sich darüber immer noch Sorgen darüber machen*.

Wenn du dich ganz auf FreePascal beschränkt sollte das Ganze IMHO sogar über das Terminal auf dem Server kompilierbar sein (wenn du da FreePascal installiert bekommst)**.


* Nicht, dass das falsch verstanden wird, die Lösung würde mich auch interessieren.
** Nicht getestet.

NickelM 28. Jun 2011 21:57

AW: Auf Windows Eine Konsolenanwendung für Linux schreiben
 
Hmm okay. Danke an alle. Ich gug dan mal ob ich das mit FreePascal oder Lazarus hinbekomme.

Luckie 28. Jun 2011 22:00

AW: Auf Windows Eine Konsolenanwendung für Linux schreiben
 
Nicht oder. FreePascal ist die Sprache und Compiler und Lazarus ist die IDE.

WM_CLOSE 28. Jun 2011 22:34

AW: Auf Windows Eine Konsolenanwendung für Linux schreiben
 
Einspruch:
Object Pascal ist die Sprache, Free Pascal der Compiler und Lazarus die IDE

Luckie 28. Jun 2011 22:41

AW: Auf Windows Eine Konsolenanwendung für Linux schreiben
 
"Einspruch abgelehnt! Setzen Sei sich!" :mrgreen:

himitsu 29. Jun 2011 00:43

AW: Auf Windows Eine Konsolenanwendung für Linux schreiben
 
Da die Delphi Sprache nun auch kein "Object Pascal" mehr ist, sondern die "Delphi Language", da sie sich angeblich schon zu weit entwickelt hat,
kann man doch FreePascal auch seine eigene Sprache gönnen, da die in einigen Teilen auch ihr eigenes Süppchen gekocht haben? :roll:


Sprache = Object Pascal oder doch Free Pascal
Compiler = Free Pascal
IDE und CodeLib (LCL/VCL) = Lazarus
:angle:

NickelM 29. Jun 2011 13:25

AW: Auf Windows Eine Konsolenanwendung für Linux schreiben
 
Hmm ich kann eigentlich Englisch aber irgendwie bin ich zublöd dafür.

//Auszug aus dem einem Link der mir gegeben wurde
2) extract it and move the i386* files to <fpcbindir>\bin\i386-win32 (e.g. c:\pp\bin\i386\win32)
3) enter FPC source dir
4) make clean
5) make OS_TARGET=linux all
6) make OS_TARGET=linux install INSTALL_PREFIX=<fpcbindir>
//ENDE

So ehm ja ich hab das ins bin Verzeichnis FPC nochmal bin angelegt und in dem i386.win32 .
So wenn ich jetzt in der Eingabeaufforderung (richtig oder?) ins FPC Verzeichnis gehen (Source dir? hä? muss ich mir erst noch den SourceCode ziehen?) und "make clean" eingebe will er auf die Symbian SDK von Nokia zugreifen (ja lol? die ist unter C:\Symbian\ warum greift er da zu???????????). Nun was mache ich falsch? Die weiteren kommandos mit make kommt der gleiche Fehler.
Egal ob ich ins FreePascal oder lazarus FPC verzeichnis gehe (bin oder source).

Aber was hat das Symbian SDK damit zutun? Erstens andere Verzeichnis zweitens ganz andere Pfad usw.

DeddyH 29. Jun 2011 14:00

AW: Auf Windows Eine Konsolenanwendung für Linux schreiben
 
Wenn Du Ubuntu verwendest, müsste sich Lazarus doch bequem über apt (z.B. Synaptic) installieren lassen. Da brauchst Du dann kein make und Konsorten.

JamesTKirk 4. Jul 2011 08:39

AW: Auf Windows Eine Konsolenanwendung für Linux schreiben
 
Lass mich erstmal eins vorneweg sagen: von Windows nach Linux (oder einem anderen *nix System) zu kompilieren ist eine frickelige Angelegenheit. Das ist dabei nicht Free Pascal anzulasten, sondern der Tatsache wie das Linken von Anwendungen zu DLLs funktioniert.

Demnach lautet meine erste Empfehlung: Lade dir Ubuntu runter und installier das in einer VM. Das wird dann am Ende um einiges leichter sein.

Falls du dennoch weitermachen möchtest, bitte sehr:
  • installiere dir FPC 2.4.4 für Windows z.B. nach C:\FPC\2.4.4, was der Standard ist; ich bezeichne dieses Verzeichnis nun als %FPCDIR%
  • lade dir den Quellcode zu Free Pascal herunter, den findest du zum Beispiel hier
  • entpacke den Code nun so, dass sich die Verzeichnisse rtl, compiler, packages usw. direkt innerhalb des %FPCDIR% Verzeichnisses befinden.
  • entpacke die binutils für Linux, welche du ja bereits heruntergeladen hast, und kopiere sie nach %FPCDIR%\bin\i386-win32 (dieses Verzeichnis sollte bereits existieren); nun sollten dort Anwendungen wie i386-linux-as.exe, etc. liegen
  • Öffne ein Kommandozeilenfenster und gib als erstes set PATH=c:\fpc\2.4.4\bin\i386-win32 ein (wobei c:\fpc\2.4.4 natürlich das %FPCDIR% von oben ist)
  • das nächste Kommando ist cd c:\fpc\2.4.4 (bzw. eben dein %FPCDIR%), wobei du je nach deiner Umgebung erst das Laufwerk wechseln musst; hast du FPC zum Beispiel auf D:\ installiert, so musst du zuerst d: eingeben und mit Enter bestätigen
  • nun führst du make all OS_TARGET=linux aus
  • war dies erfolgreich, so kommt noch ein make crossinstall OS_TARGET=linux INSTALL_PREFIX=c:\fpc\2.4.4 (natürlich wieder auf deine Verzeichnisstruktur anpassen)
  • nun kannst du mal ein einfaches Hello World Programm anlegen und eine Kompilation mittels fpc -Tlinux hello.pas testen

Ich hoffe dies hilft dir weiter. Wenn dies erfolgreich funktioniert, dann kann man sich damit befassen diesen CrossCompiler unter Lazarus zu verwenden.
Dennoch rate ich dir nochmals zur Installation eines Linux. Besonders wenn Shared Libraries (das DLL Äquivalent unter Linux) hinzukommen :mrgreen:

Gruß,
Sven

NickelM 11. Jul 2011 00:45

AW: Auf Windows Eine Konsolenanwendung für Linux schreiben
 
Okay danke nochmal.

Ich werde es die Tage mal nochmal versuchen.
Was ich aber nach langem Suchen bei meinem Vater seinenr CD gefunden habe ist...*trommelwirbel* KYLIX!!!
YEAH!!! So hmm mal gugen ob ich es hinbekomme in ubuntu Kylix zum laufen bekomme...

jaenicke 11. Jul 2011 02:32

AW: Auf Windows Eine Konsolenanwendung für Linux schreiben
 
Kylix ist keine gute Idee. Das hat zwar durchaus funktioniert, wird aber schon lange nicht mehr weiterentwickelt. Wenn du damit jetzt Quelltext schreibst, wirst du dafür kaum neue Komponenten finden und ihn nicht mehr 1:1 in heutigen IDEs nutzen können, weder in Delphi noch in Lazarus.
Sogar Lazarus ist besser als Kylix.
Deshalb: Kylix ist tot, lass es in Frieden ruhen... ;-)

Lazarus hat zwar viele Macken, aber wenn du es unter Linux direkt installierst und nicht mit cross compiling anfängst, hast du auch nicht besonders viel Aufwand.

Du kannst natürlich auch auf Delphi XE 3 oder XE 4 warten, wenn Delphi irgendwann auch für Linux kompiliert. Das wäre natürlich sehr viel komfortabler, aber das wird noch etwas dauern. Wenn du Glück hast ein Jahr, vielleicht auch länger. ;-)

JamesTKirk 11. Jul 2011 08:13

AW: Auf Windows Eine Konsolenanwendung für Linux schreiben
 
Ganz davon abgesehen, dass du bei Kylix mehr frickeln musst, um es auf modernen Distros zum Laufen zu bringen. Wenn du also schon ein Linux installierst, dann mach dir das Leben einfach und nimm Lazarus. ;)

Gruß,
Sven

Teekeks 11. Jul 2011 10:52

AW: Auf Windows Eine Konsolenanwendung für Linux schreiben
 
Zitat:

Zitat von jaenicke (Beitrag 1111076)

Du kannst natürlich auch auf Delphi XE 3 oder XE 4 warten, wenn Delphi irgendwann auch für Linux kompiliert.

Was dann natürlich komplett ohne Fehler sein wird ;)

jaenicke 11. Jul 2011 12:47

AW: Auf Windows Eine Konsolenanwendung für Linux schreiben
 
Zitat:

Zitat von Teekeks (Beitrag 1111107)
Zitat:

Zitat von jaenicke (Beitrag 1111076)

Du kannst natürlich auch auf Delphi XE 3 oder XE 4 warten, wenn Delphi irgendwann auch für Linux kompiliert.

Was dann natürlich komplett ohne Fehler sein wird ;)

Besser als Lazarus wird sicher auch die erste Version sein. ;-) Gerade die Qualität ist in den letzten Versionen ja immer besser geworden.

Die Frage ist halt wann es kommt, denn der Fokus für XE 3 scheint ja von Linux ein wenig Richtung mobile Entwicklung gerückt zu sein, wenn ich die letzten Aussagen, die öffentlich gemacht wurden, richtig interpretiere. (Was ich persönlich auch gut finde, denn mit typischen privaten Linuxanwendern lässt sich wenig verdienen, mit mobilen Geräten dagegen viel.)


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:40 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz