C Compiler und Cross-Plattform-UI
C Compiler und Cross-Plattform-UI
Meine Google-Skills lassen mich etwas in Stich. Ich möchte ein bischen in C rum experimentieren. Problem dabei: Wo anfangen.
Die einfachste Frage - welcher Compiler? Er sollt idealerweise den aktuellsten stand (c11 oder?) unterstützen, per Comandozeile aufrufbar sein (ich möchte gerne mal ausprobieren, alles per Hand zu machen), ohne großartige Installation auskommen und idealerweise irgendwie bundelbar mit meinen Programm sein.
Und gleich die zweite Frage: C hat ja meiner Meinung einen riesen Designfehler - die Standard-Bibliotheken sind irgendwie auf den Stand von DOS. Also müssen zusätzliche Bibliotheken her. Ich bin irgendwie überrascht, das es anscheinend nicht "DIE" Bibliothek findet, die die standard-UI-Elemente wie Fenster mit Buttons und Menüs anbietet - wie es bspw. in PureBasic gemacht wird. Leider verbietet PB die Erstellung einer Warper-DLL (was ich durchaus verstehen kann). Gibts tatsächlich keine Bibliothek, womit man Fenster und Gadgets/Controlls erstellen kann, möglich HiDPI tauglich, Einfärbbar und mit Größenbrechnungen für den Platzverbrauch der Controlls und für Windows, Linux und Macos verfügbar ist?
Die einfachste Frage - welcher Compiler? Er sollt idealerweise den aktuellsten stand (c11 oder?) unterstützen, per Comandozeile aufrufbar sein (ich möchte gerne mal ausprobieren, alles per Hand zu machen), ohne großartige Installation auskommen und idealerweise irgendwie bundelbar mit meinen Programm sein.
Und gleich die zweite Frage: C hat ja meiner Meinung einen riesen Designfehler - die Standard-Bibliotheken sind irgendwie auf den Stand von DOS. Also müssen zusätzliche Bibliotheken her. Ich bin irgendwie überrascht, das es anscheinend nicht "DIE" Bibliothek findet, die die standard-UI-Elemente wie Fenster mit Buttons und Menüs anbietet - wie es bspw. in PureBasic gemacht wird. Leider verbietet PB die Erstellung einer Warper-DLL (was ich durchaus verstehen kann). Gibts tatsächlich keine Bibliothek, womit man Fenster und Gadgets/Controlls erstellen kann, möglich HiDPI tauglich, Einfärbbar und mit Größenbrechnungen für den Platzverbrauch der Controlls und für Windows, Linux und Macos verfügbar ist?
CodeArchiv Rebirth: Deutsches Forum Github Hilfe ist immer gern gesehen!
Re: C Compiler und Cross-Plattform-UI
Ich würde dir C# und VS Community empfehlen. Es soll auch mit Mono unter Linux möglich sein.
Oder muss es unbedingt C sein?
Oder muss es unbedingt C sein?
Re: C Compiler und Cross-Plattform-UI
andere Alternative: JavaFX.GPI hat geschrieben:Gibts tatsächlich keine Bibliothek, womit man Fenster und Gadgets/Controlls erstellen kann, möglich HiDPI tauglich, Einfärbbar und mit Größenbrechnungen für den Platzverbrauch der Controlls und für Windows, Linux und Macos verfügbar ist?
Grüße ... Peter
Hygge
- TroaX
- Beiträge: 662
- Registriert: 08.03.2013 14:27
- Computerausstattung: PC: Ryzen 9 3950X, 96 GB RAM, RX6800XT, 2.5 TB SSD, 21:9 Display, Pop_OS! | Lappi: Ryzen 7 5800H, 16 GB RAM, 1 TB SSD, Pop_OS!
- Wohnort: NRW
- Kontaktdaten:
Re: C Compiler und Cross-Plattform-UI
Die C Standard-Bibliothek ist im Grunde auch nur eine Schnittmenge an Baisfunktionen, die sich die meisten Betriebssysteme teilen. Aber C an sich verfolgt auch eine andere Philosophie als zum Beispiel Purebasic oder C#/Visual Basic.
Purebasic ist zwar größtenteils mit C Bibliotheken kompatibel. Stellt aber trotzdem ncoh eine relativ große Bibliothekensammlung bereit, die einem Entwickler das Leben deutlich leichter machen könnte (wenn sie auch mal modernere Funktionen bietet).
Bei den .NET Sprachen (sowie Java) wird außerdem garnicht für den Computer programmiert, sondern für eine virtuelle Maschine. Auch diese haben eine nochmal deutlich mächtigere Bibliothek und zudem einen Paketmanager, mit dem man weitere sehr leicht nachladen und einbinden kann.
Purebasic, Java und die .NET Sprachen sind eher für RAD gedacht und zumindest die Standard-Libs verfolgen im Regelfall auch eine relativ ähnliche Funktionsweise (Bei PB zum Beispiel die Objektrelation von Funktionen).
C hingegen ist in aller erster Linie einmal eine Programmiersprache. Nicht mehr und auch nicht weniger. Genauso ist es auch z.B. mit C++, D oder auch Freebasic. Bis auf Sprachspezifische Funktionen besitzen diese Kandidaten von Haus aus garnichts. Selbst die Standard-C Library ist im Grunde nur eine Bibliothek, die per Spezifikation den Compiler-Entwicklern aufgezwungen wird. Enthalten sind aber nur sehr rudimentäre Funktionen. Mathematik, Ein und Ausgabe, Dateiverwaltung. Also nur oberflächliche Aufgaben, damit der Programmierer nicht dafür auch noch Libs suchen muss. Für alles andere muss man natürlich suchen. Und du wirst auch feststellen, das jede Bibliothek bestimmte Dinge anders handhabt. Bei der einen werden Relationen durch Adressen bei Funktionen automatuisch generiert (als würde alles #PB_Any benutzen). Bei der nächsten kannst du nur eine Instanz zur Zeit nutzen. Bei wieder einer anderen wird eine Adresse an einen Pointer gesendet, den du als letzten Parameter mitgeben musst usw. Du solltest dir dieser Sache bewusst sein und dir gut überlegen, ob das was du vorhast diesen Aufwand auch rechtfertigt.
Wenn du plattformübergreifend Benutzeroberflächen schreiben willst, fällt mir da als erstes für C das GTK-Projekt ein: https://www.gtk.org/
Für C++ würde ich sowieso auf das Qt Framework setzen.
Eine gute Anlaufstelle wäre diese Liste: https://github.com/fffaraz/awesome-cpp
In dieser Liste sollten Fred und Co auch mal stöbern. Vielleicht könnte dann PB mal ein paar modernere Tricks
Aber naja "wenn Schweine fliegen ..." und so
Purebasic ist zwar größtenteils mit C Bibliotheken kompatibel. Stellt aber trotzdem ncoh eine relativ große Bibliothekensammlung bereit, die einem Entwickler das Leben deutlich leichter machen könnte (wenn sie auch mal modernere Funktionen bietet).
Bei den .NET Sprachen (sowie Java) wird außerdem garnicht für den Computer programmiert, sondern für eine virtuelle Maschine. Auch diese haben eine nochmal deutlich mächtigere Bibliothek und zudem einen Paketmanager, mit dem man weitere sehr leicht nachladen und einbinden kann.
Purebasic, Java und die .NET Sprachen sind eher für RAD gedacht und zumindest die Standard-Libs verfolgen im Regelfall auch eine relativ ähnliche Funktionsweise (Bei PB zum Beispiel die Objektrelation von Funktionen).
C hingegen ist in aller erster Linie einmal eine Programmiersprache. Nicht mehr und auch nicht weniger. Genauso ist es auch z.B. mit C++, D oder auch Freebasic. Bis auf Sprachspezifische Funktionen besitzen diese Kandidaten von Haus aus garnichts. Selbst die Standard-C Library ist im Grunde nur eine Bibliothek, die per Spezifikation den Compiler-Entwicklern aufgezwungen wird. Enthalten sind aber nur sehr rudimentäre Funktionen. Mathematik, Ein und Ausgabe, Dateiverwaltung. Also nur oberflächliche Aufgaben, damit der Programmierer nicht dafür auch noch Libs suchen muss. Für alles andere muss man natürlich suchen. Und du wirst auch feststellen, das jede Bibliothek bestimmte Dinge anders handhabt. Bei der einen werden Relationen durch Adressen bei Funktionen automatuisch generiert (als würde alles #PB_Any benutzen). Bei der nächsten kannst du nur eine Instanz zur Zeit nutzen. Bei wieder einer anderen wird eine Adresse an einen Pointer gesendet, den du als letzten Parameter mitgeben musst usw. Du solltest dir dieser Sache bewusst sein und dir gut überlegen, ob das was du vorhast diesen Aufwand auch rechtfertigt.
Wenn du plattformübergreifend Benutzeroberflächen schreiben willst, fällt mir da als erstes für C das GTK-Projekt ein: https://www.gtk.org/
Für C++ würde ich sowieso auf das Qt Framework setzen.
Eine gute Anlaufstelle wäre diese Liste: https://github.com/fffaraz/awesome-cpp
In dieser Liste sollten Fred und Co auch mal stöbern. Vielleicht könnte dann PB mal ein paar modernere Tricks
Aber naja "wenn Schweine fliegen ..." und so
PC: Ryzen 9 3950X | 96 GB RAM | RX6800XT | 2,5 TB NVMe | Pop_OS!
Notebook: 16" 3:2 | Ryzen 7 5800H | 16 GB RAM | Radeon Vega | 1TB NVMe | Pop_OS!
NAS: Fritz.Box
Coding: Purebasic 6.04 | PHP | HTML | CSS | Javascript
Notebook: 16" 3:2 | Ryzen 7 5800H | 16 GB RAM | Radeon Vega | 1TB NVMe | Pop_OS!
NAS: Fritz.Box
Coding: Purebasic 6.04 | PHP | HTML | CSS | Javascript
Re: C Compiler und Cross-Plattform-UI
C will ich prinzipiell deshalb hernehmen, weil es am verbreiteten ist. Es sollte kein Problem sein einen C-Compiler bspw. für ARM zu bekommen. Es ist imo DIE Programmiersprache. Java möchte ich nicht hernehmen, weil es, wie schon geschrieben wurde, immer in einer VM läuft und damit resourcen verbrennt.RSBasic hat geschrieben:Ich würde dir C# und VS Community empfehlen. Es soll auch mit Mono unter Linux möglich sein.
Oder muss es unbedingt C sein?
@TroaX
Das ist imo mein Punkt - eine Programmiersprache sollte in Jahr 2018 eine grafische Benutzeroberfläche nativ unterstützen (also ohne zusätzliche Installation) und das über alle Plattformen (sofern die Plattform das unterstützt). Das ist für mich einfach Basis-Funktion. Genauso wie eine grafische Darstellung kein Thema sein sollte.
GTK hab ich mal drüber gelesen, das soll aber unter Windows mehr ein Krampf als gut lösbar sein und QT scheint wohl primär für C++ zu sein. Ich möchte aber gerne mich auf C beschränken.
Ansonsten danke für Liste.
Jetzt brauchts nur einen gescheiten Compiler (möglichst in 64 und 32 bit)
CodeArchiv Rebirth: Deutsches Forum Github Hilfe ist immer gern gesehen!
- TroaX
- Beiträge: 662
- Registriert: 08.03.2013 14:27
- Computerausstattung: PC: Ryzen 9 3950X, 96 GB RAM, RX6800XT, 2.5 TB SSD, 21:9 Display, Pop_OS! | Lappi: Ryzen 7 5800H, 16 GB RAM, 1 TB SSD, Pop_OS!
- Wohnort: NRW
- Kontaktdaten:
Re: C Compiler und Cross-Plattform-UI
https://en.wikipedia.org/wiki/List_of_c ... _compilersGPI hat geschrieben:Jetzt brauchts nur einen gescheiten Compiler (möglichst in 64 und 32 bit)
PC: Ryzen 9 3950X | 96 GB RAM | RX6800XT | 2,5 TB NVMe | Pop_OS!
Notebook: 16" 3:2 | Ryzen 7 5800H | 16 GB RAM | Radeon Vega | 1TB NVMe | Pop_OS!
NAS: Fritz.Box
Coding: Purebasic 6.04 | PHP | HTML | CSS | Javascript
Notebook: 16" 3:2 | Ryzen 7 5800H | 16 GB RAM | Radeon Vega | 1TB NVMe | Pop_OS!
NAS: Fritz.Box
Coding: Purebasic 6.04 | PHP | HTML | CSS | Javascript
Re: C Compiler und Cross-Plattform-UI
Ich weiss schon warum ich Purebasic nehme. Alles dabei
Compiler für Windows, Linux, Mac. Fehlt leider nur noch die Unterstützung für ARM-Prozessoren.
Ach!
Du must nicht unbedingt die GUI von Purebasic verwenden. Hatte irgendwo mal die Beispiele um verschiedene GUI direkt zu verwenden.
Kann ich leider nicht wiederfinden.
- Windows komplett über API und Resource Files
- GTK und GDK für Linux und Window
- Cocoa für Mac
Es gibt bestimmt noch mehr Library zur Erstellung von GUI´s die man verwenden kann.
Was ich an Purebasic gut finde das es eine einfache Basic-Syntax Sprache ist, aber in den Bereich Speichermanagement (Pointer , Strukturen)
eher in Richtung von 'C' ist.
Compiler für Windows, Linux, Mac. Fehlt leider nur noch die Unterstützung für ARM-Prozessoren.
Ach!
Du must nicht unbedingt die GUI von Purebasic verwenden. Hatte irgendwo mal die Beispiele um verschiedene GUI direkt zu verwenden.
Kann ich leider nicht wiederfinden.
- Windows komplett über API und Resource Files
- GTK und GDK für Linux und Window
- Cocoa für Mac
Es gibt bestimmt noch mehr Library zur Erstellung von GUI´s die man verwenden kann.
Was ich an Purebasic gut finde das es eine einfache Basic-Syntax Sprache ist, aber in den Bereich Speichermanagement (Pointer , Strukturen)
eher in Richtung von 'C' ist.
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Re: C Compiler und Cross-Plattform-UI
Ich bin selbst nicht mit C oder C++ aktiv, aber hatte mal die selbe Aufgabestellung. Ich denke das sollte Dir helfen:
Lade und installiere Code::Blocks (http://www.codeblocks.org/). Da ist, glaub ich, auch schon der Compiler MinGW mit herunterladbar. Also installieren und loslegen.
Für Cross-Platform GUI könnte wxWidgets für dich passen (https://www.wxwidgets.org/). Laut Webseite wurde Code::Blocks ebenfalls mit wxWidgets gemacht
Lade und installiere Code::Blocks (http://www.codeblocks.org/). Da ist, glaub ich, auch schon der Compiler MinGW mit herunterladbar. Also installieren und loslegen.
Für Cross-Platform GUI könnte wxWidgets für dich passen (https://www.wxwidgets.org/). Laut Webseite wurde Code::Blocks ebenfalls mit wxWidgets gemacht
Re: C Compiler und Cross-Plattform-UI
Hallo,
du möchtest 'C' mit plattformunabhängigen GUI-Framework verwenden ?
GTK+ wäre mein Tipp.
Aber warum willst du dir dabei eine Lösung mit der Programmiersprache 'C' antun ?
Die besten Framework's wären hierbei QT (lerne und verwende C++) oder eben JAVA (AWT, SWING, FX) (aber das ist dir ja zu Leistungshungrig).
GTK kann dabei zu größerem Gebastel ausarten.
Die meisten GUI-Kits sind auch eher für C++, als für C optimiert. (Auch: WXWidgets)
du möchtest 'C' mit plattformunabhängigen GUI-Framework verwenden ?
GTK+ wäre mein Tipp.
Aber warum willst du dir dabei eine Lösung mit der Programmiersprache 'C' antun ?
Die besten Framework's wären hierbei QT (lerne und verwende C++) oder eben JAVA (AWT, SWING, FX) (aber das ist dir ja zu Leistungshungrig).
GTK kann dabei zu größerem Gebastel ausarten.
Die meisten GUI-Kits sind auch eher für C++, als für C optimiert. (Auch: WXWidgets)
Betriebssysteme: div. Windows, Linux, Unix - Systeme
no Keyboard, press any key
no mouse, you need a cat
no Keyboard, press any key
no mouse, you need a cat
Re: C Compiler und Cross-Plattform-UI
Tiny C mit gtk oder z.b. iup usw.
https://en.wikipedia.org/wiki/Tiny_C_Compiler
http://webserver2.tecgraf.puc-rio.br/iup/
https://en.wikipedia.org/wiki/Tiny_C_Compiler
http://webserver2.tecgraf.puc-rio.br/iup/