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.
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.
Si vous êtes dans le traitement de l'Image, etc, alors OpenCV peut-être intéressant de jouer avec.
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
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.
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 :)
j'aime jouer avec cimg, son très bon, facile à utiliser, image de la bibliothèque, de la bonne, pour déconner :p
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 .
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:
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.
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.
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!
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.