Quelles sont les bibliothèques C/C++ intéressantes avec lesquelles jouer?

je suis à la recherche de quelques nouvelles bibliothèques et de C et C++. Dans le passé, la plupart du temps, je suis tombé "par hasard" sur quelques - uns-et la plupart d'entre eux ont trouvé une bonne utilisation dans les projets sur lesquels j'ai travaillé.

les bibliothèques devraient fonctionner sur Mac OS X et Linux / POSIX et éventuellement sur Windows.

  • Lua - un moteur de script minimal et rapide pour les fichiers de configuration et les scripts d'application de base.
  • V8 - rapide JavaScript par Google engine similaire au Javasriptcore de WebKit.
  • le Caire - une bonne bibliothèque graphcis semblable à QuickDraw / Quartz sur Mac OS X.
  • ZBar - une bibliothèque de scanneurs de codes à barres, qui permet de scanner des photos/images/flux vidéo pour les codes à barres et de retourner leur valeur.
  • ZLib - une bibliothèque de compression très compacte pour les flux de données. Utilisé zziblib et minizip, trop.
  • DynaPDF - une bibliothèque de génération PDF facile à utiliser.
  • libusb - une bibliothèque USB universelle qui permet l'accès portable à des périphériques USB (j'ai utilisé ceci pour écrire un pilote de base pour une imprimante POS personnalisée).
  • WebKit - c'est un très bon si vous voulez rendre des contenus HTML/Web et l'utiliser dans des applications pour donner à vos utilisateurs un utilisateur "plus riche" expérience.
  • Qt4 - le cadre général pour tous les types de développement des postes de travail (et éventuellement mobiles). Passer beaucoup de mon temps avec celui - aucune idée de comment je pourrais l'oublier. ;)

ceci devrait être marqué communauté wiki. Veuillez mettre à jour si vous avez quelque chose d'intéressant à ajouter!

Merci!


mise à Jour de 1

Je ne cherche pas des bibliothèques de" productivité " comme Boost ou STL. Au lieu de cela, je suis à la recherche de "nouveaux trucs intéressants" de genres aléatoires - que ce soit des bibliothèques graphiques, des bibliothèques de script, des bibliothèques réseau ou même des bibliothèques MOD/MIDI jouant. Désolé de ne pas avoir été clair avant.

45
demandé sur badcat 2011-03-10 16:59:10

15 réponses

STL et Boost sont des mustels.

SQLite fournit une base de données relationnelle complètement intégrée et complète dans quelques 100k que vous pouvez inclure directement dans votre projet. Il s'agit également d'une compétence hautement commercialisable en raison de sa forte présence (il est inclus dans Mozilla Firefox ainsi que Android et iOS).

si vous êtes intéressé à créer des interfaces utilisateur, regardez dans ncurses -- c'est la bibliothèque qui a été utilisée pour créer de nombreux utilisateurs de terminaux interfaces et peut être très utile pour créer des jeux et des utilitaires d'environnement. Qt est une interface graphique de cadre pour le C++.

si vous êtes intéressé par les graphiques ou la création de jeux, considérez SDL ou OpenGL (ou DirectX si vous ne vous gênez pas de travailler uniquement sur Windows).

bien sûr, il y a des milliers d'intéressant bibliothèques. Cela dépend vraiment de ce que vous êtes intéressé dans.

21
répondu Rafe Kettler 2011-03-10 14:07:13

Si vous êtes dans le traitement de l'Image, etc, alors OpenCV peut-être intéressant de jouer avec.

11
répondu Tony The Lion 2011-03-10 14:13:46

Chaque programmeur C++ doit d'abord jouer avec ces deux bibliothèques:

  • bibliothèque Standard C++ - incluant les conteneurs STL, L'algorithme STL, la fonctionnalité STL etc.
  • Bibliothèques Boost C++.

Pour l'interface graphique

7
répondu Nawaz 2015-11-10 20:42:37

Pourquoi ne pas essayer OGRE

6
répondu Alexander Gessler 2011-03-10 14:16:59

Bibliothèque De Visualisation pourrait être intéressant. consultez cette galerie

la bibliothèque de visualisation est un C++ middleware pour des performances 2D et Les applications graphiques 3D basées sur norme industrielle OpenGL 1.x-4.x, conçu pour développer portable applications pour Windows, Linux et Mac OS X systèmes d'exploitation.

Physique Des Balles Bibliothèque est un moteur de physique open source avec détection 3D des collisions, dynamique du corps souple et dynamique du corps rigide. Il est utilisé dans les jeux, et dans les effets spéciaux dans les films.

4
répondu umar 2011-03-10 15:06:22

Boost semble un choix évident.

Mais si vous cherchez quelque chose d'un peu plus spécifique, puis l' OpenCV la bibliothèque semble susciter beaucoup d'intérêt pour le moment - il s'agit d'une bibliothèque de vision d'ordinateur à source ouverte.

3
répondu GrahamS 2011-03-10 14:02:20

Si vous souhaitez jouer avec apprentissage automatique (classificateurs et ce genre de chose), les réseaux Bayésiens, ou essayez de créer vos propres algorithmes mais voulez utiliser certains outils utiles pour le faire (par exemple, l'optimisation prête à l'emploi et les outils d'algèbre linéaire) puis vérifiez dlib. Je pense que son grand, mais je travaille donc je suis partial :)

3
répondu Davis King 2011-03-12 14:04:36

j'aime jouer avec cimg, son très bon, facile à utiliser, image de la bibliothèque, de la bonne, pour déconner :p

http://cimg.sourceforge.net/

2
répondu Eamonn McEvoy 2011-03-10 14:09:40

Boost mais pas la partie "productive":)

coup de pouce.Xpressive ou comment encoder des expressions régulières dans des templates!

coup de pouce.MPL jettera un nouvel éclairage sur l'utilisation de template, vous obtiendrez un grok plus fin de template metaprogramming et creusé plus profondément dans les subtilités de SFINAE et de déduction de template.

coup de pouce.Préprocesseur va éclairer d'une lumière nouvelle sur l'utilisation et l'abus du préprocesseur. Il est très pratique lorsque vous utilisez des modèles pour générer de multiples surcharges de fonctions de template et de classes (et en effet la MPL est basée sur elle). L'intérêt diminue cependant quelque peu avec l'avènement de...

C++0x!

la nouvelle bibliothèque Standard avec ses fils!

Apprendre à utiliser std::future et std::function, découvrez la joie de lambdas, la gamme de produits for syntaxe auto mot clé!

C++0x a tellement de nouveaux jouets qu'il se sent presque comme un nouveau langage... et c'est aussi une bonne brosse de votre savoir-faire et une bonne façon de rester .

2
répondu Matthieu M. 2011-03-10 16:18:17

Hiberlite:

une interface de type hibernate pour SQLite, quelqu'un devrait écrire un driver à mysql en utilisant OTL!

LLVM:

JIT dynamiquement nouveau code dans votre c++

moteur 3D Irrlicht

2
répondu lurscher 2014-08-22 22:11:02

je sais que vous êtes probablement à la recherche de bibliothèques que vous pouvez intégrer dans votre travail quotidien, mais pour un projet à domicile la bibliothèque Wiimote C++ pourrait conduire à des projets intéressants:

http://pawst.com/post/471040-c-wiimote-library

1
répondu Robben_Ford_Fan_boy 2011-03-10 14:10:27

Pour le développement de jeux - OGRE

L'interface de développement - wxWidgets - Compatible Bibliothèque d'interface graphique

et les deux bibliothèques sont OpenSource.

1
répondu Mahesh 2011-03-10 18:31:13

Cinder et openFrameworks sont des kits d'outils géniaux pour 'creative coding', comme ils l'ont dit. Ces bibliothèques, ou plutôt collection de bibliothèques, couvrent tout, des mathématiques et des réseaux aux graphiques 2D, 3d, interfaçant divers dispositifs d'entrée et plus encore.

1
répondu shakurov 2014-08-22 22:32:26

la dernière fois que je me suis amusé à creuser dans quelque chose lié au c++ était avec SWIG. C'est un générateur de wrapper/interface qui vous permet de lier votre code c++ à Python.

réaliser à quel point il est simple D'utiliser SWIG est instructif et assez amusant en soi. Ensuite, vous pouvez jouer en mélangeant les bibliothèques Python et C++.

amusez-vous bien!

0
répondu log0 2011-03-10 14:28:28

Ogre a déjà été mentionné. Si vous voulez aller en 3D, puis Panda3D j'ai trouvé facile à apprendre.

Joueur/Étape Du Projet est une interface de commande de robot et une bibliothèque de simulation. Vous pouvez simuler des robots ou les exécuter sur de vrais robots.

0
répondu thorsten müller 2011-03-10 15:42:36