2008-11-17 21 views
19

Mam kilka projektów programowania C dla hobby, które chciałbym rozpocząć. Szukam biblioteki open source, która ma licencję liberalną (chcę kredytu, ale prawie każdy może korzystać). Biblioteka musi mieć łańcuchy lepsze niż standardowa biblioteka C i niektóre przenośne prymitywy gwintowania.GLib v APR plusy i minusy każdego

Rozważam GLib i APR. Jakie jest twoje praktyczne doświadczenie? Która jest lepsza podstawowa biblioteka C? Czy są jakieś inne biblioteki wypełniające tę samą niszę?

Odpowiedz

12

Myślę, że glib jest ogólnie lepszy od p. glib ma wiele więcej struktur danych jako bibliotek przenośnych. np. tabele skrótów, listy wszelkiego rodzaju, kolejek, stosów, tablice dynamiczne, również do analizowania argumentów, plik io ma własne opakowania, a zarządzanie pamięcią jest łatwe do zmienienia. Np. Możesz łatwo użyć glib w Boehm Weisser GC, ponieważ AFAIKT nigdy nie został wykonany lub jest to łatwe z Apache. Postanowiłbym nieco inaczej. Jeśli potrzebujesz bardziej użytecznej biblioteki struktur danych, glib jest lepiej wyposażony. Jeśli chodzi o obsługę GUI, to libapr nie ma nic, podczas gdy glib ma gdk/gtk + i wiele rzeczy dla gnoma, jeśli chcesz.

Jednakże, jeśli chodzi o rzeczy sieciowe, libapr zdecydowanie ma przewagę nad glib.

Więc moje sugestie to

  • Pulpit programowania Use GTK + i wygadany.
  • Sieć rzeczy: Użyj apr, ale bądź pewny, że glib ma również wszystkie te przenośne rzeczy.
7

Poszedłbym z APR. APR jest lepszy w przenośności Unix/Windows (jako dedykowana biblioteka przenośności), GLib jest tradycyjnie bardziej zorientowany na Uniksa. APR jest obszerniejszą biblioteką niż GLib, zawiera wiele użytecznych rzeczy (tablice haszujące, analiza argumentów, pliki I/O plików, zarządzanie pamięcią, funkcje pamięci wspólnej, obsługa sygnałów itp.).

+1

Nawiasem mówiąc, glib zawiera gio, który jest przenośnym we/wy z architekturą zorientowaną strumieniowo. Nie sądzę, że apr jest większy niż glib. – lethalman

+2

Jak to jest dzisiaj? Które jest większe? I czy ta odpowiedź jest nadal ważna? – einpoklum

+0

Rzeczy libapr są dużo mniejsze niż rzeczy glib/gtk. Nie ma co do tego wątpliwości ... – Friedrich

1

Czy istnieje powód, dla którego nie chcesz używać C++ stl? Nawet jeśli piszesz kod "c-style" bez klas, możesz użyć łańcuchów C++ i struktury danych.

Istnieje wiele ważnych powodów, dla których warto trzymać się litery C, oczywiście. W takim przypadku podałbym rekomendację dla glib. APR jest bardziej warstwą przenośności niż biblioteka narzędziowa.

+1

Mówiąc o ciągach C++, poleciłbym Ci przeczytać, co Linus ma do powiedzenia na ten temat: http://thread.gmane.org/gmane.comp.version-control.git/57918 –

+1

Tak, Zgadzam się, że Linus dokonał właściwego wyboru, by użyć prostej C dla gita. Użyj tego, co jest odpowiednie dla twojego projektu i docelowych odbiorców programistów. Struny C++ są ładne, szczególnie dla programistów "hobbystycznych", takich jak plakat, ponieważ nie musisz śledzić własności i dowiedzieć się, kiedy je zwolnić(), a automatyczne powiększanie powoduje, że nie musisz musicie się martwić o skomplikowane przypadki strcat. Oczywiście, jak już powiedziałem, "istnieje wiele ważnych powodów, by trzymać się C ...". Użyj tego, co działa dla ciebie. – joeld

+1

Pytanie dotyczyło w szczególności kodowania w C, więc C++ STL nie ma znaczenia. (Tak, wiem, że ten komentarz jest 5 lat po fakcie, chłopcze, te pytania i odpowiedzi na pewno się sprawdzają, prawda?) – einpoklum