Autor |
Beitrag |
Flamefire
Beiträge: 1207
Erhaltene Danke: 31
Win 10
Delphi 2009 Pro, C++ (Visual Studio)
|
Verfasst: Mo 15.12.08 11:13
Ich will ein Programm, dass ich auf Lazarus geschrieben hab für Linux compilen, um es auf nem Webserver zum laufen zu bringen.
(Konsolenanwendung; ein Parameter; eine Ausgabe mittels Write; interne Grafikbehandlung (Laden; in Byte-Array umwandeln))
Ich selbst hab keine WinAPIs benutzt, weiß aber ne, ob sich die Intfgraphics (oder so) und TBitmap daran halten. Denke aber mal
Wie kann ich das jz auf meiner Win-Kiste ohne Linux für den Linux-Webserver (glaube Ubuntu) compilen?
Habs versucht in den Compilereinstellungen alle "WIN32" durch "LINUX" o.ä. zu ersetzen aber dann kriege ich ne meldung über ne fehlende "system.*"
hat jmd erfahrung oder ne ordentliche (aktuelle) Anleitung dafür?
Danke schonmal
|
|
Aristoteles
Beiträge: 69
SuSE Linux 10.0
Lazarus 0.9; Delphi7 PE
|
Verfasst: Mo 15.12.08 11:43
Flamefire hat folgendes geschrieben : | Ich selbst hab keine WinAPIs benutzt, weiß aber ne, ob sich die Intfgraphics (oder so) und TBitmap daran halten. |
Die Lazarus-Component-Library (LCL) ist natürlich Betriebssystemunabhängig programmiert. D.h. hier dürften keine Probleme auftreten.
Zitat: | Wie kann ich das jz auf meiner Win-Kiste ohne Linux für den Linux-Webserver (glaube Ubuntu) compilen? |
Ich kenne leider nur den umgekehrten Weg: Crosscompile von Linux nach Windows, was relativ einfach ist. Ev. hilft dir aber diese Anleitung weiter:
www.stack.nl/~marcov/crossnotes.txt
Zitat: | Habs versucht in den Compilereinstellungen alle "WIN32" durch "LINUX" o.ä. zu ersetzen aber dann kriege ich ne meldung über ne fehlende "system.*" |
Nun, Lazarus spannt ja die LCL in dein Programm ein. Daher muss auch die LCL für Linux vorliegen, was du aber ganz einfach erreichen kannst: Einstellungen-->Lazarus erstellen konfigurieren --> Erweiterte Build-Optionen
In diesem Menü nun alles auf none, nur die LCL auf build. Als LCL-Schnittstelle gtk, qt oder am Besten gtk2 wählen (jenachdem, welche grafische Schnittstelle du haben willst. qt=KDE, gtk2=gnome; letztere sollte überall laufen).
Dieses Kompilieren der LCL wird in der obigen Anleitung mit dem make-Befehl erreicht. Verschiedene Wege führen zum Ziel.
Sollte Probleme auftreten kannst du ja nochmal posten.
Viele Grüße, Alexander
|
|
Flamefire
Beiträge: 1207
Erhaltene Danke: 31
Win 10
Delphi 2009 Pro, C++ (Visual Studio)
|
Verfasst: Mo 15.12.08 21:32
beim compilen der LCL auf gtk2 kriege ich nen Fehler:
der stoppt in der InterfaceBase und sagt "InterfaceBase used by Interfaces was not found"
hä?
und wenn ich beim project->compilereinstellungen setze:
LCL-Schnittstelle: gtk2
funktioniert das ganze (wird kompiliert und bekomm ne windows-exe die auch läuft)
wenn ich dann noch als Zielbetriebssystem Linux wähle kommt n fehler "cannot find system used by project1"
achja und vorher kommt noch "the system.ppu was not found in the fpc directories. Make sure fpc was installed correctly and the fpc.cfg points to the right directory"
|
|
Aristoteles
Beiträge: 69
SuSE Linux 10.0
Lazarus 0.9; Delphi7 PE
|
Verfasst: Di 16.12.08 19:09
Die von dir geposteten Meldungen machen auf mich den Eindruck, als fehlen dir ein paar notwendige Bibliotheken...
... aber wie gesagt, unter Windows Linuxprogramme habe ich selbst noch nicht crosscompiled.
Hmmm. Eventuell weiß jemand vom offiziellen Lazarusforum genauer Bescheid, wenn du magst kannst du hier nochmal fragen: www.lazarusforum.de
Viele Grüße, Alexander
|
|
Flamefire
Beiträge: 1207
Erhaltene Danke: 31
Win 10
Delphi 2009 Pro, C++ (Visual Studio)
|
Verfasst: So 25.01.09 09:54
so...hab da nur die empfehlung bekommen, linux inner VM zu installieren und von dort zu kompilieren
nach vergeblichen versuchen unter windows, mach ich das jz auch
hab noch virtualPC auf meim windows rechner, wo ich dann ein linux system anlegen würde
das problem: ich hab noch nie mit linux gearbeitet, bräuchte also mal nen crash-kurs, wie ich linux installe (is das so wie bei windows?), wie ich dann lazarus aus den .deb dateien installiert kriege und was ich vl sonst noch brauch
ein weiteres problem: ich bin z.zt. nur mit gprs bei 7 kb/s download unterwegs...
müsste also alles von der uni aus laden.
ich würde mich also freuen, wenn mir jmd gleich sagen kann, was ich noch alles brauche und besonders woher ich linux überhaupt kriege. (das programm soll dann auf nem debian server laufen, wäre also debian das beste oder?)
|
|
Webo
Beiträge: 577
Erhaltene Danke: 14
Win 7, Debian
C# (Visual Studio 2013), PHP, C, C++ (Eclipse, KDevelop)
|
Verfasst: So 25.01.09 10:33
Um Linux zu installieren:
1.) Lädst du dir deine gewünschte Distribution runter, da du ja anscheinend auf Debian hinaus willst: www.debian.com/CD/
2.) Dann installierst du das wie Windows von der CD aus und arbeitest dich durch das Installationsmenü
3.) Nachdem der Installer fertig ist, kannst du Debian starten und es einrichten
4.) (Da ich nur Ubuntu nutze weiß ich nicht genau, ob das bei Debian genau so ist) Du holst dir mit dem Paketmanager die Lazarusdateien runter (alternativ in der Konsole mit apt-get install Lazarus (vermutlich)) der installiert dir das automatisch. Natürlich kannst du dir auch die .deb-Dateien so runterladen, er wird sie dann vermutlich über den PaketManager installieren.
5.) Dann musst du dir noch die Units und .dcu's aus dem I-Net laden und installieren (Mit fällt der Name grad nicht ein, gibt es aber als ganzes Paket, auch im PaketManager)
6.) Fertig
Anmerkung: Ich denke du kannst statt Debian auch Ubuntu installieren (ist für den Anfang leichter), da Ubuntu ja von Debian abstammt und es deshalb da keine Probleme geben wird. ( www.ubuntu.com/getubuntu/download )
_________________ Man kann nur das aus dem Ärmel schütteln, was man auch vorher reingesteckt hat.
|
|
Maweki
Beiträge: 197
Ubuntu Linux
Lazarus
|
Verfasst: So 25.01.09 12:52
Also ich wollte das ganze umgekehrt machen (von Linux nach Windows und es traten, trotz dem, dass ich der Anleitung gefolgt war) ähnliche Probleme auf. Ich habe dann Lazarus auf einem Windows-Rechner installiert und alle Include-Dateien, Bibliotheken usw. auf den Linux-Rechner kopiert.
Und dann ging das. Es scheint so, als würden die Distributionen nie mit den Bibliotheken der anderen Systeme ausgeliefert (obwohl das Lazarus-Projekt sich das Crosscompiling so schön groß auf die Brust schreibt).
In die eine Richtung, wie schon gesagt, ging das. Und so wie das bei dir klingt, könnte das andersherum genauso laufen.
Kleiner hinweis:
man vergisst beim für-Windows-coden oftmals *nix-spezifische Sachen (groß-kleinschreibung, Ordnerstruktur). Ich habe die Erfahrung gemacht, dass ich vorsichtiger programmieren muss, wenn ich auf Windows entwickle.
|
|
Flamefire
Beiträge: 1207
Erhaltene Danke: 31
Win 10
Delphi 2009 Pro, C++ (Visual Studio)
|
Verfasst: Di 27.01.09 11:06
ok ich lad mir gerade ubuntu
aber zu punkt 4) ne frage: ich muss mir die .deb dateien laden (über UNI wegen größe)
wie benutze ich dann den packetmanager?
welche units und dcus brauche ich denn noch?
reicht das standartpacket vom lazrusprojekt denn nicht?
sourceforge.net/proj...mp;package_id=204004
was brauche ich denn davon alles?
@maweki:hättest du die linux-dateien mal da und kannst sie mal so uppen?
|
|
Webo
Beiträge: 577
Erhaltene Danke: 14
Win 7, Debian
C# (Visual Studio 2013), PHP, C, C++ (Eclipse, KDevelop)
|
Verfasst: Di 27.01.09 16:59
Normal müsste er die .deb Dateien automatisch mit dem Paketmanager öffnen, da diese unter Ubuntu mit ihm verknüpft sind (zumindest in der 8er Version)
Auf der Seite, die du gepostet hast, sind die fp Pakete schon angegeben. Ich hatte mir das damals anders runtergeladen, aber das sind eigentlich die, die du brauchst.
_________________ Man kann nur das aus dem Ärmel schütteln, was man auch vorher reingesteckt hat.
|
|
Aristoteles
Beiträge: 69
SuSE Linux 10.0
Lazarus 0.9; Delphi7 PE
|
Verfasst: Di 27.01.09 17:55
Flamefire hat folgendes geschrieben : | ok ich lad mir gerade ubuntu
aber zu punkt 4) ne frage: ich muss mir die .deb dateien laden (über UNI wegen größe)
wie benutze ich dann den packetmanager? |
Der Paketmanager unter Ubuntu nennt sich Synaptic - ist ein klasse Tool, intuitiv handhabbar.
Du brauchst alle deb-Pakete, die du dort zur gewünschten Lazarus-Version herunterladen kannst. Hier eine Anleitung zur Installation unter Ubuntu:
www.lazarusforum.de/...c.php?f=47&t=305
Die Anleitung ist sehr gut. Wenn man sie befolgt, kommt man zum Ziel. Sie wurde zwar für eine ältere Version von Lazarus geschrieben, sollte aber weitgehend 1-zu-1 übertragbar sein.
Viele Grüße, Aristoteles
|
|
Flamefire
Beiträge: 1207
Erhaltene Danke: 31
Win 10
Delphi 2009 Pro, C++ (Visual Studio)
|
Verfasst: Di 27.01.09 20:48
ok...soweit nach anleitung würde das klappen (hab heute den ganzen tag probiert und genau das herausgefunden)
mein problem: der ubuntu Virtual PC hat keinen Inet-Anschluss!
und Internet habe ich nur an nem Zweit-PC über GPRS/UMTS (SIM-Karte)
daher bin ich in schöne Komplikationen gekommen, die Lazarus IDE zu installieren
ich schaff es einfach ne alle Abhängigkeiten zu finden und zu laden
gibt es ein windows-tool, womit ich das runterladen kann, dann auf den ubuntu-pc und von dort (am besten automatisiert) die ganzen quelle installieren?
das erste was er gemeckert hat war die libgtk2.0-dev
und daraus n haufen abhängigkeiten
außerdem müssen es "-0ubuntu1"-packet sein (also z.b. "libglib2.0-dev_2.18.2-0ubuntu1_i386.deb")
das hat mich auch nochmal ne stunde gekostet, die richtigen zu finden (inkl. ubuntu neuinstallation nachdem ich die gtk2 deinstalliert hatte ^^)
Hätte nicht gedacht, dass es so aufwendig wird
das einzige, wie ich das ubuntu an internet bekommen könnte, ist die SIM-Karte über mein Motorola V3i als Modem zu nutzen. da krieg ich aber i-wie nur GPRS rein (7 Kb/s Download)
wie bekomme ich aber Ubuntu auf Virtual PC 2007 dazu, diese Internetverbindung zu erkennen?
|
|
Maweki
Beiträge: 197
Ubuntu Linux
Lazarus
|
Verfasst: Di 27.01.09 21:26
Nimm Virtualbox-OSE unter Windows. Da sollte auch Internet gehen.
deb www.hu.freepascal.org/lazarus/ lazarus-stable universe
in die sources.list
und dann sudo apt-get update
und
sudo apt-get install lazarus
dann sollte es laufen.
Edit:
Und wenn du absolut garnich klarkommst: PM und ich pack dir alles was ich unter Linux zum Crosscompilen hab, zusammen. Aber besser wäre es natürlich, wir finden eine Lösung, die dann für alle geht, die das Problem haben.
|
|
Flamefire
Beiträge: 1207
Erhaltene Danke: 31
Win 10
Delphi 2009 Pro, C++ (Visual Studio)
|
Verfasst: Mi 28.01.09 09:07
das problem ist ja nicht mit ubuntu an internet zu kommen, sondern dass ich dort wenn dann nur ein 7 kb/s internet habe, was auch nur übers handy laufen würde (da vermute ich, dass es gar nicht geht, weils dazu keine treiber gibt)
mit internet könnte ich ja auch synaptic nehmen
wenn du zeugs da hast um unter windows für linux zu compilen, wäre das natürlich super
|
|
Flamefire
Beiträge: 1207
Erhaltene Danke: 31
Win 10
Delphi 2009 Pro, C++ (Visual Studio)
|
Verfasst: Sa 31.01.09 12:28
ich hab das ganze grad mal mit den binaries des compilers für linux unter windows probiert...
nachdem er n haufen rumgemeckert hat (was durch einfügen von {$define GTK1} in die ganzen units gelöst werden konnte) hat er mir beim compilen (also nach der syntaxprüfung) einen compilerfehler gebracht: cannot find lglib
was soll ich jz machen?
google gibt nur lösungen für linux...aber nicht für windows
|
|
Happy_Penguin
Hält's aus hier
Beiträge: 9
|
Verfasst: Sa 28.03.15 13:09
Hallo,
GTK ist leider nicht so einfach zu bedienen wie es sein sollte... GTK3 hat zwar schon bessere Lösungsansätze, ich würde dir aber QT empfehlen.
Das ist deutlich besser plattformübergreifend.
Ich weiß, dass es unter Linux lazarus sowohl mit gtk als auch mit qt gibt. Vielleicht kann man das beim Crosscompilern ja auch irgendwie einstellen?
_________________ Linux 3.20 wäre ja langweilig...
|
|