2012-04-06 22 views
0

Ich bin neugierig zu wissen, ob es irgendeine Art von Programmierbibliothek/Framework für die C-Sprache für Cross-Plattform-Programmierung natürlich gibt. Ich meine, es gibt bereits Frameworks wie Wxwidgets, Boost, Qt, U ++ und etc für C++, aber ich habe noch keine für C gefunden.Gibt es einen plattformübergreifenden Rahmen für C?

Aktualisiert Info:

Wir versuchen, eine darunter liegende Rahmen/Bibliothek zu bauen, um in unserem Projekt verwendet werden. Wir werden das dotnet eliminieren und stattdessen ein Gegenstück für diese Bibliotheken bereitstellen, das schnell und weniger anspruchsvoll ist.

Wir werden an einem Server/Client-basierten Projekt arbeiten, und daher müssen die zugrunde liegenden Dienste schnell und auch portabel sein. GUI ist jetzt nicht unsere Priorität, aber Bibliotheken, die Threading-Fähigkeiten bereitstellen, sind für uns wichtig.

Und für den ANSI-Teil, ich denke, dass wir im Moment damit gut sind, es sei denn, etwas ändert sich das in der Zukunft.

+0

können Sie gtk + mit C – AurA

+0

danke verwenden, aber ist nicht gtk + nur ein GUI-Toolkit? – Breeze

Antwort

0

wenn Sie schlicht ANSI C schreiben, sollte es auf jedem POSIX-System arbeiten. Das erfolgreichste Beispiel einer plattformübergreifenden C-Bibliothek ist die Standard-C-Bibliothek selbst (IMHO).

Wenn Sie nach GUI-Toolkit suchen GTK ist die Antwort, Wenn Sie nach Terminal-Benutzeroberfläche suchen, ist Ncurses ziemlich portabel.

Wenn Sie nach Bibliotheken für die allgemeine Verwendung suchen, sollten diese, sofern sie in ANSI C geschrieben sind, fast überall funktionieren, solange sie keine APIs auf Systemebene verwenden.

Können Sie uns einfach sagen, welche Art von Bibliothek/Framework Sie suchen?

+0

Danke,. Wir versuchen, eine zugrunde liegende Framework/Bibliothek zu erstellen, die in unserem Projekt verwendet werden soll. Wir werden das dotnet eliminieren und stattdessen ein Gegenstück für diese Bibliotheken bereitstellen, das schnell und weniger anspruchsvoll ist. Wir werden an einem Server/Client-basierten Projekt arbeiten, und daher müssen die zugrunde liegenden Dienste schnell und auch portabel sein. GUI ist nicht unsere Priorität, aber Bibliotheken, die Threading-Fähigkeiten bereitstellen, sind für uns wichtig. und für den ANSI-Teil denke ich, dass es uns im Moment gut geht, wenn sich das nicht in der Zukunft ändert. – Breeze

+0

@Hossein versuchen, Antwort auf diese Frage http://stackoverflow.com/questions/5613646/threading-in-cc-cross-platform zu sehen, können Sie einige nützliche Link zu libs finden – BigMike

+0

Danke, ich denke, ich bleibe bei diesem OpenMP für während. Bisher scheinen OPenMp und Glib ausreichend zu sein. danke nochmal – Breeze

0

GTK+ ist seit langem etabliertes und aktiv gepflegt plattformübergreifendes C-only (oder in erster Linie) Toolkit. Sie finden nicht nur Online-Dokumentation, sondern auch Bücher darüber geschrieben. Es ist das Framework, das das GNOME Projekt sichert.

GTK + soll vor allem Anwendungen mit UI erstellen. Auch wenn Sie keine Benutzeroberfläche benötigen, werden Sie feststellen, dass einige GTK + -Komponenten, nämlich GLib, allgemeine Multiplattform-Unterstützung bieten, die mit Qt vergleichbar ist. Eigentlich brauchte ich zuerst ein Framework ohne UI und wählte GLib über APR, weil ich Dokumentation und Tutorials leichter finden konnte.

GTK + wurde ursprünglich auf UN * X und X-Windows entwickelt, was die Plattform bleibt, auf der Sie am einfachsten laufen können. Ich würde nicht sagen, dass es unter Windows schwieriger ist; Es ist nur so, dass Sie mehr Optionen für die Kompilierung der Umgebung haben. Ich habe mit den vorbereiteten GTK + -Paketen und MinGW begonnen, aber am Ende habe ich GTK + mit MSVC integriert.

GTK + existiert seit langer Zeit und einige Leute finden es alt-Schule. Auf der anderen Seite zeigt es, dass es sich als stabil und nützlich erwiesen hat. Es gibt auch Bindungen für C++ und .

Wie mit jedem großen Rahmen, je mehr Sie brauchen, desto länger müssen Sie lernen. Aber umgekehrt funktioniert es auch; Je mehr Sie lernen, desto mehr können Sie damit tun. Ein konsistenter Programmierstil hilft, sich daran zu gewöhnen.

--- Ferda

+0

vielen dank, sehr informativ. Ich habe meinen Beitrag mit den Informationen über unseren Zweck aktualisiert und muss eine solche Frage stellen. GLib scheint interessant, aber wir brauchen etwas, das einige Funktionen bietet, wie die Unterstützung der Arbeit mit Threads und dergleichen. – Breeze

+0

Gern geschehen. Während GLib Threads und Networking unterstützt, wurde es nicht primär für die Performance entwickelt. Es gibt andere, die auf Client/Server-Anwendungen spezialisiert sind. [Ein anderer Thread hier] (http://bit.ly/xjdFUR) bezieht sich auf ACE, POCO und ASIO, z.B. Alle von ihnen C++, ich fürchte ... Ich habe [ASIO] (http://think-async.com/Asio/) einmal bewertet, was mir gefallen hat, weil ich die schnellste Unterstützung für ein bestimmtes Betriebssystem, wie IOCP unter Windows, verwende . Es gibt Threads [hier] (http://bit.ly/HjidRO) und [hier] (http://bit.ly/HBybRF) über asynchrone IO. –

+0

vielen Dank liebe @Ferdinand Prantl. Unter diesen scheint nur der Glib C freundlich (kompatibel - supporting es) der Rest belog C++ scheint es. egal, ich denke zwischen OpenMP und Glib, ich werde OpenMP für jetzt verwenden, und wenn wir mehr brauchten, haben wir Glib dank dir :) – Breeze

Verwandte Themen