Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Unter Windows zu Linux compilieren

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Linux-spezifische Fragen
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
vinny



Anmeldungsdatum: 27.02.2007
Beiträge: 32

BeitragVerfasst am: 24.07.2007, 19:00    Titel: Unter Windows zu Linux compilieren Antworten mit Zitat

Hi!
ist es möglich, ein unter Windows geschriebenes Programm mit Freebasic zu einem Linuxprogram zu compilieren, so dass dieses ohne Zusatzsoftware mit Linux läuft?

Danke!

Gruß,
vinny
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
The real Agent D



Anmeldungsdatum: 24.11.2005
Beiträge: 605
Wohnort: Hall i. T.

BeitragVerfasst am: 24.07.2007, 19:03    Titel: Antworten mit Zitat

Ja, unter Linux kompillieren.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
vinny



Anmeldungsdatum: 27.02.2007
Beiträge: 32

BeitragVerfasst am: 24.07.2007, 19:06    Titel: Antworten mit Zitat

Hi!
danke für die Antwort!
ich hoffe die Frage ist nicht zu blöd: sind das die gleichen Befehle zum Programmieren wie unter Windows? Nachher muss ich eine komplett neue Programmmiersprache lernen zwinkern
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
csde_rats



Anmeldungsdatum: 07.01.2007
Beiträge: 2292
Wohnort: Zwischen Sessel und Tastatur

BeitragVerfasst am: 24.07.2007, 19:08    Titel: Antworten mit Zitat

natürlich sinds dieselben.
winapi kannste nat. net nutzten, auch keine dlls...
_________________
If hilfreicher_Beitrag then klick(location.here)

Klick
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
vinny



Anmeldungsdatum: 27.02.2007
Beiträge: 32

BeitragVerfasst am: 24.07.2007, 19:10    Titel: Antworten mit Zitat

Hi!
dann ist ja gut lachen

welche Datei muss ich denn fürs Datum statt vbcompat.bi aufrufen?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
oiermann



Anmeldungsdatum: 28.12.2005
Beiträge: 90
Wohnort: Leutkirch

BeitragVerfasst am: 24.07.2007, 21:47    Titel: Antworten mit Zitat

http://www.freebasic.de/Referenz.php?zeig=tuts&col1=a0d5d0&ref=yes&show=DATE
_________________
Ich bin keine Signatur, ich putz hier nur
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2522
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 26.07.2007, 08:25    Titel: Antworten mit Zitat

Das sog. Portieren von Applikationen auf verschiedene Plattformen stellt übrigens im Bereich vom Software Engineering ein Thema für sich dar.

@vinny:
Du musst hier klar zwischen dem Built-In-Befehlssatz (welcher hoffentlich auf allen FreeBasic-Compilern für jede Plattform identisch ist) und plattformspezifischen API-Aufrufen unterscheiden. Letztere musst Du in eine eigene Bibliothek einkapseln (=den z.B. Windows-spezifischen .DLL-Aufrufcode in von Dir definierte SUBs und FUNCTIONs verpacken, die Du dann auch unter Linux und sonstwo bereitstellst), so dass programmierte Applikationen portierbar werden.
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Emil



Anmeldungsdatum: 14.02.2007
Beiträge: 26
Wohnort: am Ende der Welt

BeitragVerfasst am: 01.08.2007, 06:49    Titel: Antworten mit Zitat

So einfach ist es nun doch nicht.
Natürlich muss man immer beachten, dass Linux, welches auch immer, nicht Windows ist.
So z.B. wird ein:
Open exepath+"\meinedatei.txt" for input as #1
unter Linux nicht funktionieren, da Linux kein Backslash ("\") kennt.
Auch muss man bei Linux strickt auf Gross- und Kleinschreibung achten!

Windows ist es egal, ob die Datei "meinedatei.txt" oder "MeineDatei.txt" heisst.
Die Datei würde mit
Open exepath+"\meinedatei.txt" for input as #1
geöffnet werden.
Unter Linux muss unbedingt
Open exepath+"\MeineDatei.txt" for input as #1
geschrieben werden, sollte die Datei denn "MeineDatei.txt" heissen.
Auch gibt es durchaus Befehle, die unter Linux anders oder gar nicht funktionieren.

Es ist durchaus machbar Windowsprogramme auf Linux zu portieren, aber mit einem einfachen: "Compaliere unter Linux" ist es mit Sicherheit nicht getan.

Emil
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4676
Wohnort: ~/

BeitragVerfasst am: 01.08.2007, 08:46    Titel: Antworten mit Zitat

Emil hat Folgendes geschrieben:
Unter Linux muss unbedingt
Open exepath+"\MeineDatei.txt" for input as #1
geschrieben werden, sollte die Datei denn "MeineDatei.txt" heissen.

Open exepath+"/MeineDatei.txt" for input as #1 zwinkern
Allerdings sollte Windows keine Probleme haben, wenn / statt \ verwendet wird, dann könnte man gleich die Backslashes durch Slashes ersetzen.
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 01.08.2007, 08:49    Titel: Antworten mit Zitat

Oder man löst das mit ein bisschen Präprozessor-Arbeit.
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2522
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 01.08.2007, 09:28    Titel: Antworten mit Zitat

Emil hat Folgendes geschrieben:
.
So z.B. wird ein:
Open exepath+"\meinedatei.txt" for input as #1
unter Linux nicht funktionieren, da Linux kein Backslash ("\") kennt.

Dateipfade stellen natürlich ein Paradebeispiel zum Thema Portabilität von Applikationen dar. Als Lösung macht es hier Sinn, auch für Pfade eine solche Einkapselungsbibliothek zu schreiben, wo u.a. auch
Code:
FUNCTION PfadSeparator
  ' Version für Windows
  PfadSeparator = "\"
END FUNCTION

hineingehört, so dass man mit etwa Geschick hoffentlich auch Dateipfade in einer portierbaren Form verwenden kann. Denkbar wäre auch ein Ansatz mit abstrakten Pfaden eines fiktiven Dateisystems, so dass man einfach
Code:
hypothetischerPfad$ = "/c/daten/123.txt"
OPEN portable2os$(hypothetischerPfad$) FOR INPUT AS 1

wobei man diese kleine Pfadbibliothek auch möglich optimal den typischen Bedürfnissen anpassen müsste. So haben absolute Pfade in einem Code ohnehin nichts zu suchen, weil man prinzipiell das Vorhandensein bestimmter Laufwerke nicht voraussetzen kann. Denkbar sind aber eine Reihe von FUNCTIONs, die Spezialpfade wie "Eigene Dateien", $HOME (übrigens kann man ein Home-Laufwerk genauso in Windows-Netzwerk mit Domain Controller definieren!) usw. zurückliefern, ferner macht auch das Handling relativer Pfade Sinn. Übrigens einen Dateidialog sollte man ebenfalls besser in diese Bibliothek hineinnehmen, da mittlerweilen beinahe jedes OS mit GUI entsprechende Betriebssystemroutinen bereitstellt (und dort, wo es das nicht gibt, packt man etwas eigenes in die Implementierung hinein!).

Übrigens gibt es nicht nur Windows und Linux, ich erlebte früher als Beispiele die Betriebssysteme MacOS Classic (das MacOS X ist bekanntlich ein UNIX im Hintergrund und deswegen mehr oder weniger mit Linux gleichzusetzen), VAX-VMS und Amiga.

Bei VMS wurden die Pfade immer in eckigen Klammern geschrieben, Pfad-Separator war dort der Punkt. Eine Stufe höher war dort "-". So musste dort ein
Code:
../../Bilder/Lib1/Giraffe.gif

als
Code:
[--.BILDER.LIB1]GIRAFFE.GIF;0

(Versionsnummern gab es auch noch!) geschrieben werden.

Zum Amiga: Verwendet genauso wie UNIX/Linux den "/" als Pfad-Separator, aber Laufwerke wie "DF0:" gab es dort zusätzlich noch und statt
Code:
cd ..

schrieb man
Code:
cd /

Obiges Beispiele musste also als
Code:
//Bilder/Lib1/Giraffe.gif

geschrieben werden.

Aus der klassischen Apple-Welt: Dort hatte ich in dem Sinn als "Kommandozeilen-fähiges" Programm einmal Matlab im Gebrauch: In Dateipfaden kam dort immer der ":" als Pfad-Separator zum Zug. War dann als
Code:
Volume1:Programme:Bilder:Lib1:Giraffe.gif

formuliert.

Schlussendlich will ich damit sagen: Für das Design einer solchen Pfadabstraktionsbibliothek muss man sich mit möglich vielen Betriebssystemplattformen auseinandersetzen und geeignete gemeinsame Nenner suchen.
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 01.08.2007, 11:25    Titel: Antworten mit Zitat

das dank präprozessoren inzwischen ganz einfach in freebasic:

Code:

#ifdef __FB_WIN32__
  Const OsType = "Windows"
  Const Slash = "\"
#endif
#ifdef __FB_DOS__
  Const OsType = "DOS"
  Const Slash = "\"
#endif
#ifdef __FB_LINUX__
  Const OsType = "Linux"
  Const Slash = "/"
#endif

_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Linux-spezifische Fragen Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz