www.mikrocontroller.net

Forum: PC-Programmierung Programm gleichzeitig für Windows UND Linux?


Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich würde gerne ein kleines Tool schreiben, das sowohl unter Linux als 
auch unter Windows vernüntig läuft, am liebsten jeweils OHNE Emulator. 
Java oder ähnliches möchte ich vermeiden. Wie macht man so etwas? Es 
gibt ja einige Programme, beispielsweise ADS2008 oder Eagle, die für 
beide Betriebssysteme erhältlich sind und vom look&feel her quasi 
identisch sind.

Mein Tool soll über USB mit einer Mikrocontroller-Schaltung 
kommunizieren und ein paar Einstellungen in einem GUI-Dialogfenster 
ermöglichen. Außerdem soll man Konfigurationen in Dateien abspeichern 
können. Nichts wildes also.

Allerdings ist ja das Ansprechen von Schnittstellen (USB) in den 
Betriebssystemen recht unterschiedlich und auch die Bibliotheken für das 
GUI sind ziemlich unterschiedlich. Wie schreibt man also portierbare 
Software? Wie macht CADsoft das mit Eagle?

Schreibt man sich irgendeinen Layer zurecht, der ein Interface für beide 
Betriebssysteme nach unten darstellt und nach oben eine einheitliche 
API, oder gibt es bereits fertige Bibliotheken, die für beide 
Betriebssysteme eine einheitliche Schnittstelle darstellen?

Wäre für Tips sehr dankbar...

Autor: madler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Qt (wird auch von EAGLE benutzt) 
http://de.wikipedia.org/wiki/Qt_(Bibliothek)

Den USB-Teil wirst Du aber Betriebssystem-spezifisch machen müssen (a la 
"#ifdef WIN32 ...")

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es gibt plattformunabhängige GUI-Bibliotheken, die auch andere Aspekte 
des darunterliegenden Betriebssystemes kapseln. Qt, wxWidgets etc.
Sicherlich wird man bestimmte Funktionalitäten betriebssystemabhängig 
codieren müssen, aber der überwiegende Teil muss nur einmal entwickelt 
werden.

www.trolltech.no
www.wxwidgets.org

Autor: Frank Esselbach (Firma: Q3) (qualidat)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sieh dir mal RealBasic an (www.realbasic.com)!

Das kann aus dem gleichen Quelltext für Windows, Mac OS und Linux 
compilieren. Keine externe Laufzeitlib, keine DLLs, alles in einer EXE- 
bzw. APP-Datei.

Frank

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die Tips, genau so etwas wie wxwidgets habe ich gesucht! 
Kann der GNU C-Compiler eigentlich auch für WIN32 crosscompilen?

Autor: Hmm... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ohne es getestet zu haben...

Hat jemand mal Lazarus probiert? Ist eine OpenSource Variante von 
Delphi, die IDE samt Compiler gibt es u.a. für Linux und Windows. Und 
die generierten GUIs haben recht identisches Aussehen...

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Probier mal folgende Kombination:

www.fltk.org   ... für die GUI
libusb.sourceforge.net bzw. libusb-win32.sourceforge.net ... für USB

Also ich hab mit beiden nur positive Erfahrungen gemacht.

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Kann der GNU C-Compiler eigentlich auch für WIN32 crosscompilen?

Damit meinst Du, ob der unter einem anderen OS als Windows laufende GCC 
Win32-Binaries erzeugen kann? Vermutlich nicht "out-of-the-box", aber 
beizubiegen müsste es ihm eigentlich sein, da es schließlich auch native 
Win32-Ports davon gibt. Du musst allerdings komplett andere Include- und 
Library-Verzeichnisse verwenden, und natürlich auch komplett 
unterschiedlichen Startup-Code.

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Rufus: Genau, ich habe dazu jetzt MinGW gefunden:

http://de.wikipedia.org/wiki/MinGW
http://www.mingw.org/

Mal sehen, ob ich das zum Laufen bekomme...

Autor: Bartli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Den MinGW benutze ich ab und zu um Windowssaftware kreuzzukompilieren, 
das funktioniert ziemlich gut, anschliessend kann man gleich noch mit 
Wine testen (ob das in deinem Fall mit USB etc. auch noch einfach so 
funkt sei einmal dahingestellt).

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>> Kann der GNU C-Compiler eigentlich auch für WIN32 crosscompilen?
>
>
> Damit meinst Du, ob der unter einem anderen OS als Windows laufende GCC
> Win32-Binaries erzeugen kann? Vermutlich nicht "out-of-the-box",

Kommt drauf an. Bei Debian und darauf basierenden Linux-Distributionen 
gibt's mingw32 als fertiges Paket. Da reicht ein "apt-get install 
mingw32", und schon hat man den Crosscompiler installiert. Damit kann 
man "out-of-the-box" auf das Win32-API zugreifen. Etwas komplizierter 
wird es dann, wenn man noch verschiedene zusätzliche Libs verwendet. Ich 
baue hier übrigens unter Ubuntu per mingw32 Qt-Programme für Windows.

> Du musst allerdings komplett andere Include- und Library-Verzeichnisse
> verwenden, und natürlich auch komplett unterschiedlichen Startup-Code.

Die verwendet der Cross-Compiler automatisch. Das ist es ja, was ihn zum 
Cross-Compiler macht.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.