Was sind einige allgemeine Allzweckbibliothek wie Boost C++ ist aber für C? Es sollte eine plattformübergreifende Bibliothek sein und Sammlungen wie Bäume, verknüpfte Listen, Warteschlangen usw. enthalten. Welche Vorteile/Nachteile haben diese Bibliotheken?C: Gemeinsame Frameworks/Bibliotheken
Antwort
glib
ist recht nett, weil:
- liberal lizenziert (LGPL)
- konstante Entwicklung
- Tonnen von Datenstrukturen
- Bäume
- Listen
- Warteschlangen
- Caches
- usw.
- good documentation
- viel Beispielcode
- Entwicklung "Hilfe"
- Protokollierung
- Thread Abstraktion Pools
- Gewinde
- Test-Framework
- Timer
- Unicode-Unterstützung
- viele unterstützten Plattformen
- reguläre Ausdrücke
- Tonnen mehr ...
Der Apache Portable Runtime Projekt
ist gut. Deckt grundlegende Datenstrukturen ab und ist sehr gut bei der Netzwerk- und IO-Abstraktion. Das spätere ist eine Größenordnung besser als glib.
Leider sind die meisten Dokument Links auf den Apache-Websites sind im Moment kaputt :-( Aber dieses arbeitet Arbeit http://apr.apache.org/docs/apr/1.4/modules.html
Danke Lothar. Warum sagst du es eine Größenordnung besser? –
Es ist viel mehr Feature abgeschlossen, wenn Sie einen Server schreiben möchten. Nun, keine wirkliche Überraschung, denke ich. – Lothar
ich übersprungen glib als Basisbibliothek, da es nicht möglich ist, es als eine statische Bibliothek zu verknüpfen (vor allem nicht, wenn man es mit gnome apps verbindet) oder hat sich das zwischenzeitlich geändert? – Lothar
@Lothar - es ist * möglich *, es bedeutet nur, dass deine Software LGPL-kompatibel sein soll;) Wenn Lizenzanforderungen auch wichtig sind, kannst du sie zu deiner hinzufügen Frage. – detly
@Lothar: Nur um etwas zu klären, macht die 'glib'-Lizenz (LGPL) Ihre Arbeit zu einer" Kombinierten Arbeit ", wenn Sie, wie in Abschnitt 4 beschrieben, statisch verknüpfen. Auch wenn Sie statisch verlinken, müssen Sie Ihre nicht freigeben arbeiten unter der LGPL, solange Sie "die Änderung der Teile der Bibliothek, die in der Kombinierten Arbeit enthalten sind, nicht einschränken". Wie können Sie die Änderung von 'glib' nicht einschränken, wenn Sie sie statisch verknüpfen?Einfach: Liefern Sie die Objektdateien, damit die Leute in einer anderen Version von 'glib' verlinken können. P.S. Dies setzt voraus, dass Sie 'glib' nicht ändern. –