Co to jest popularna biblioteka ogólnego przeznaczenia, jak Boost, to C++, ale C? Powinna to być biblioteka wieloplatformowa i zawierać kolekcje takie jak drzewa, listy połączone, kolejki itp. Jakie są zalety/wady tych bibliotek?C: Wspólne frameworki/biblioteki
Odpowiedz
glib
jest bardzo ładne, ponieważ:
- liberalnie licencjonowanych (LGPL)
- stały rozwój
- ton struktur danych
- drzew
- list
- kolejek
- buforuje
- itp
- good documentation
- wiele przykładowy kod
- rozwój "pomoc"
- rejestrowanie
- wątek abstrakcji
- baseny gwint
- Test ramowe
- czasomierze wsparcie
- Unicode
- wiele obsługiwane platformy
- wyrażenia regularne
- ton więcej ...
Przenośny wykonawcze Apache projekt
jest dobre. Obejmuje podstawowe struktury danych i jest bardzo dobry w abstrakcji sieci i IO. Później jest o wiele lepiej niż glib.
Niestety większość linków dokument na stronach apache są podzielone w tej chwili :-( Ale ten działa pracę http://apr.apache.org/docs/apr/1.4/modules.html
Dzięki Lothar. Dlaczego mówisz o jego wielkości lepiej? –
To znacznie więcej funkcji, jeśli chcesz napisać serwer. Cóż, nie jest to prawdziwa niespodzianka. – Lothar
- 1. Wspólne makro długości tablicy dla C?
- 2. GLSL wielokrotnego użytku/wspólne funkcje, wspólne stałe (OpenGL ES 2.0)?
- 3. Dlaczego MSBuild przebudowuje wspólne projekty?
- 4. konsolidacyjne wspólne style WPF
- 5. Utwórz wspólne ActionResult
- 6. Jak znaleźć wspólne elementy z wielu wektorów?
- 7. Wspólne podsekwencje o zadanej długości
- 8. wspólne seplenienie: wartość szczeliny dla struktur zerwanych
- 9. Wszystkie wspólne substraty między dwoma ciągami
- 10. sprawdzić, jeśli enum ma jakieś flagi wspólne
- 11. Wspólne rejestrowanie nie może załadować typu NLog.TargetWithLayout
- 12. Wspólne błędy wielowątkowości dla początkujących na iPhone'ie
- 13. Trwałe/buforowanie danych między żądaniami - wspólne podejście
- 14. Znajdź wspólne elementy w dwóch nieposortowanych tablicach
- 15. Jakie są wspólne algorytmy ustawiania ostrości?
- 16. Najkrótsza droga przebicia - wspólne miejsce zbiórki
- 17. Rails4: Metody wspólne dla wielu sterowników
- 18. Powiązane pozy, wspólne przekształcenia w Colladzie
- 19. Co oznacza wspólne jądro w Dockerze?
- 20. Gdzie umieścić wspólne zapisywalne pliki aplikacji?
- 21. Łączenie 2 pliki .csv przez wspólne kolumny
- 22. -app-lokalizować zachowanie i wspólne cache lokalizacja
- 23. Nhibernate Throws Znalazłem wspólne odniesienia do kolekcji
- 24. Gdzie umieścić wspólne funkcje w pliku express.js?
- 25. #load nie można załadować wspólne .fsx
- 26. Jak wyodrębnić wspólne named_scopes z modeli ActiveRecord
- 27. Android Wear - dostęp mobilny wspólne preferencje
- 28. TFS i wspólne projekty w wielu rozwiązaniach
- 29. Perl wspólne zmienne niepodzielność i widoczność
- 30. Elementy wspólne systemu Android z Picasso
pominąłem wygadany jak biblioteki bazowej, ponieważ nie jest możliwe, aby połączyć go jako statyczne biblioteki (zwłaszcza, jeśli połączysz go z aplikacjami gnome) lub zmieniła się w międzyczasie? – Lothar
@Lothar - jest * możliwe *, oznacza to tylko, że twoje oprogramowanie powinno być zgodne z LGPL;) Jeśli wymagania licencyjne są również ważne, możesz dodać je do swojego pytanie. – detly
@Lothar: Aby coś wyczyścić, licencja 'glib' (LGPL) sprawia, że twoja praca jest" połączoną pracą ", jeśli łączysz statycznie, zgodnie z sekcją 4. Nawet jeśli łączysz statycznie, nie musisz zwalniać pracuj na warunkach LGPL, o ile "skutecznie nie ograniczasz modyfikacji części Biblioteki zawartej w Połączonej Pracy". Jak możesz * nie * ograniczyć modyfikację 'glib', jeśli łączysz ją statycznie?Łatwe: dostarczaj pliki obiektowe, aby ludzie mogli łączyć w innej wersji 'glib'. P.S. Zakłada to, że nie modyfikujesz 'glib'. –