Quelles sont les bibliothèques communes les plus courantes car Boost est en C++ mais pour C? Il devrait s'agir d'une bibliothèque multiplateforme et inclure des collections telles que des arbres, des listes de liens, des files d'attente, etc ... Quels sont les avantages/inconvénients de ces bibliothèques?C: Frameworks/Bibliothèques communes
Répondre
glib
est assez agréable parce que:
- généreusement sous licence (LGPL)
- de développement constant
- tonnes de structures de données
- arbres
- listes
- files d'attente
- caches
- etc.
- good documentation
- beaucoup d'exemples de code
- développement "assistance"
- abstraction fil de l'exploitation forestière
- pools de threads
- cadre de test
- minuteries
- support Unicode
- de nombreuses plates-formes supportées
- expressions régulières
- tonnes plus ...
Le temps d'exécution portable Apache projet
est bon. Couvre les structures de données de base et est très bon pour l'abstraction réseau et E/S. Ce dernier est d'une magnitude meilleure que glib.
Malheureusement, la plupart des liens de documents sur les sites apache sont brisés au moment :-( Mais celui-ci fonctionne le travail http://apr.apache.org/docs/apr/1.4/modules.html
Merci Lothar. Pourquoi dites-vous que c'est une grandeur meilleure? –
Il est beaucoup plus de fonctionnalités complètes si vous voulez écrire un serveur. Eh bien pas une vraie surprise, je pense. – Lothar
- 1. CSS - classes communes
- 2. Règles communes d'optimisation
- 3. Définitions communes partagées à travers C/C++ (non géré) et le code C# géré
- 4. Spring - config communes apache email
- 5. Fonctions graphiques communes et utiles?
- 6. structures de contrôle - applications communes
- 7. App Engine et communes fileUpload
- 8. Graphiques - trouver des données communes
- 9. Lutte avec les bibliothèques Lisp communes
- 10. MYSQL: Deux tables SELECT sans valeurs communes
- 11. Sélection unique Win32 ListView (Commandes communes)
- 12. Erreurs communes multithread débutants font sur iPhone
- 13. communes configuration fichier de configuration personnalisée
- 14. Un framework avec des fonctionnalités communes
- 15. Recherche de lignes communes à plusieurs fichiers
- 16. Nhibernate colonnes communes en classe de base
- 17. pratiques communes actuelles en architecture d'application web
- 18. Django et cartes d'accès communes (CAC)
- 19. Pourquoi utiliser les expressions de table communes?
- 20. De nouveaux enregistrements avec des données communes
- 21. Commandes communes 6.0 dans Windows 2000?
- 22. Ressources communes dans Silverlight et .NET
- 23. SEO pour les fautes d'orthographe communes
- 24. Comment gérer plusieurs interfaces utilisateur communes?
- 25. Fusionner plusieurs trames de données sur deux colonnes communes
- 26. Conserver les références d'assemblage .NET communes à plusieurs projets
- 27. quels sont cryptage communes AES rembourrages en C# .NET et Java
- 28. Héritage multiple en C++ entraînant des difficultés à surcharger les fonctionnalités communes
- 29. Y compris les ressources communes à plusieurs projets sur différents niveaux d'imbrication (Visual C++)
- 30. Comment activer la journalisation des communes apache HttpClient sur Android
Je sautais glib comme la bibliothèque de base, car il est impossible de lier une bibliothèque statique ( – Lothar
@Lothar - c'est * possible *, cela signifie simplement que votre logiciel devrait être compatible LGPL;) Si les exigences de licence sont importantes aussi, vous pouvez l'ajouter à votre question. – detly
@Lothar: Juste pour effacer quelque chose, la licence 'glib' (LGPL) fait de votre travail un" travail combiné "si vous liez de manière statique, conformément à la section 4. Même si vous liez statiquement, vous n'avez pas à relâcher votre travailler sous la LGPL aussi longtemps que vous «ne restreignez pas la modification des parties de la bibliothèque contenues dans l'œuvre combinée». Comment pouvez-vous * pas * restreindre la modification de 'glib' si vous le reliez de manière statique?Facile: fournir les fichiers d'objets afin que les gens puissent créer un lien dans une autre version de 'glib'. P.S. Ceci suppose que vous ne modifiez pas 'glib'. –