Programm gleichzeitig für Windows UND Linux?

Gast #840991
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...
Gast #841030
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...
Persönliche Seite #841200
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.
Gast #841749
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).
Gast #841799
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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren