C Compiler und Cross-Plattform-UI

Fragen zu allen anderen Programmiersprachen.
GPI
Beiträge: 1511
Registriert: 29.08.2004 13:18
Kontaktdaten:

C Compiler und Cross-Plattform-UI

Beitrag von GPI »

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?
CodeArchiv Rebirth: Deutsches Forum Github Hilfe ist immer gern gesehen!
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: C Compiler und Cross-Plattform-UI

Beitrag von RSBasic »

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?
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
Kiffi
Beiträge: 10621
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: C Compiler und Cross-Plattform-UI

Beitrag von Kiffi »

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?
andere Alternative: JavaFX.

Grüße ... Peter
Hygge
Benutzeravatar
TroaX
Beiträge: 659
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

Beitrag von TroaX »

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 :lol:
Aber naja "wenn Schweine fliegen ..." und so :lol:
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 :lol:
Coding: Purebasic 6.04 | PHP | HTML | CSS | Javascript
GPI
Beiträge: 1511
Registriert: 29.08.2004 13:18
Kontaktdaten:

Re: C Compiler und Cross-Plattform-UI

Beitrag von GPI »

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?
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.

@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!
Benutzeravatar
TroaX
Beiträge: 659
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

Beitrag von TroaX »

GPI hat geschrieben:Jetzt brauchts nur einen gescheiten Compiler ;) (möglichst in 64 und 32 bit)
https://en.wikipedia.org/wiki/List_of_c ... _compilers ;)
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 :lol:
Coding: Purebasic 6.04 | PHP | HTML | CSS | Javascript
Benutzeravatar
mk-soft
Beiträge: 3695
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: C Compiler und Cross-Plattform-UI

Beitrag von mk-soft »

Ich weiss schon warum ich Purebasic nehme. Alles dabei :wink:

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
Benutzeravatar
Kukulkan
Beiträge: 1066
Registriert: 09.09.2004 07:07
Wohnort: Süddeutschland
Kontaktdaten:

Re: C Compiler und Cross-Plattform-UI

Beitrag von Kukulkan »

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 :-)
ccode_new
Beiträge: 1214
Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge

Re: C Compiler und Cross-Plattform-UI

Beitrag von ccode_new »

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)
Betriebssysteme: div. Windows, Linux, Unix - Systeme

no Keyboard, press any key
no mouse, you need a cat
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Re: C Compiler und Cross-Plattform-UI

Beitrag von edel »

Antworten