2010-09-02 21 views
6

¿Cuáles son algunas bibliotecas comunes de uso general como Boost es para C++ pero para C? Debe ser una biblioteca multiplataforma e incluir colecciones como árboles, listas de enlaces, colas, etc. ... ¿Cuáles son las ventajas/desventajas de esas bibliotecas?C: Common Frameworks/Libraries

Respuesta

8

glib es bastante agradable porque:

  • liberalmente con licencia (LGPL)
  • constante desarrollo
  • toneladas de estructuras de datos
    • árboles
    • listas
    • colas
    • cachés
    • etc.
  • good documentation
    • porciones de código de ejemplo
  • desarrollo "ayuda"
    • tala
    • hilo abstracción
    • grupos de subprocesos
    • marco de pruebas
    • temporizadores apoyo
  • Unicode
  • muchas plataformas soportadas
  • expresiones regulares
  • toneladas más ...
+0

Me salté simplista como la biblioteca de base, ya que no es posible vincular como una biblioteca estática (especialmente si lo vincula con aplicaciones gnome) o esto ha cambiado mientras tanto? – Lothar

+0

@Lothar - es * posible *, solo significa que su software debe ser compatible con LGPL;) Si los requisitos de la licencia también son importantes, puede agregarlos a su pregunta. – detly

+1

@Lothar: solo para aclarar algo, la licencia 'glib' (LGPL) hace que su trabajo sea un" Trabajo combinado "si enlaza estáticamente, como se indica en la Sección 4. Incluso si enlaza estáticamente, no tiene que liberar su trabajar bajo LGPL siempre y cuando "efectivamente no se restrinja la modificación de las porciones de la Biblioteca contenidas en el Trabajo Combinado". ¿Cómo puede * no * restringir la modificación de 'glib' si lo está enlazando estáticamente?Fácil: suministre los archivos objeto para que las personas puedan vincular en otra versión de 'glib'. P.S. Esto es asumiendo que no modifica 'glib'. –

0

El Apache Portable Runtime proyecto

http://apr.apache.org/

es bueno. Cubre las estructuras de datos básicas y es muy bueno en la abstracción de redes y de IO. Lo posterior es una magnitud mejor que glib.

Desafortunadamente la mayoría de los enlaces a documentos en los sitios web de Apache se rompen en el momento :-( Pero este trabajo se trabaja http://apr.apache.org/docs/apr/1.4/modules.html

+0

Gracias Lothar. ¿Por qué dices que es una magnitud mejor? –

+1

Es mucho más característica completa si desea escribir un servidor. Bueno, no es una verdadera sorpresa, creo. – Lothar