6
votes

Où puis-je voir le code utilisé dans les bibliothèques standard C ++?

Quand je compile un programme avec #include

Où puis-je voir le contenu de ce fichier, et aussi depuis que ce fichier contient des déclarations, où puis-je voir le code réel utilisé dans ces fonctions?

est-il ouvert à tout le monde ou n'est-il pas disponible pour le public?


4 commentaires

Il n'y a personne de mise en œuvre de la bibliothèque standard. Vous pouvez savoir où se trouve les en-têtes de votre implémentation en recherchant les en-têtes de votre système. Il est probable qu'ils sont tous au même endroit.


Tagged osx par fmunshi Commentaire sur Doron Question.


Ok un Mac, quel compilateur / IDE utilisez-vous?


Merci à tout le monde pour les réponses rapides, je ne prévois pas de programmer en utilisant le code source, je voulais juste jeter un oeil pour étancher ma curiosité en la matière. :)


7 Réponses :


1
votes

Si vous utilisez quelque chose comme Visual Studio, vous pouvez mettre un point de rupture, puis commencer la ligne de ligne en progressant dans votre code et ouvrira les fichiers inclus au fur et à mesure. Manière la plus rapide dans un fichier à mon avis. Sinon, vous pouvez trouver le code quelque part sur votre PC ... sur le mien, c'est dans C: \ Program Files (x86) \ Microsoft Visual Studio 10.0 \ VC \ CRT \ SRC \ OSTREAM Par exemple, remplacement de l'ostream Avec iostream, Sstream, etc. (Notez que ce sont des noms de fichier sans extensions) mais aussi si vous regardez le répertoire, vous verrez beaucoup de fichiers .h et .c


0 commentaires

1
votes

Tous les têtes de système expédient avec votre compilateur. Sur les systèmes Linux, ceux-ci peuvent normalement être trouvés sous / usr / incluent . Sur d'autres plates-formes, la volonté vivra normalement où vous avez installé le compilateur.

Bibliothèques commerciales Normalement expédiez le code source. Sur Linux, ceux-ci peuvent normalement être trouvés dans les pacuges source.


1 commentaires

Qu'en est-il sur un Mac, où puis-je trouver les forfaits source



2
votes

Cela dépend de quelle boîte à outils que vous utilisez, et que tous les vendeurs ne font que sa mise en œuvre publique. Vous pouvez consulter la bibliothèque GNU C pour commencer: http://www.gnu.org/software / libc /

Dinkumware , la société derrière la bibliothèque de modèles standard C ++ utilisée dans Visual Studio par exemple, offre Un produit commercial, le code n'est donc pas disponible pour tout le monde - cela dépend vraiment de votre licence. Certaines versions de Visual Studio expédient en effet avec le code source de l'exécution incluse.

Quant à la STL, il y a aussi stlport , une implémentation stl open source.

Votre meilleur pari sera effectivement les projets qui dépendent de GCC / G ++.


0 commentaires

4
votes

Généralement, le fichier #Inclus est lisible, mais la bibliothèque informatique n'est généralement pas lisible. Les fichiers incluent sur un Mac sont en / usr / incluent / c ++ .

Le code de la bibliothèque dépend du compilateur. Pour GNU C ++ utilisé dans Linux et Mac, vous pouvez certainement voir le code. Vous devrez peut-être le télécharger. Il est disponible sur http://gcc.gnu.org/libstdc++/

Je ne pense pas que le code de la bibliothèque Windows C ++ est disponible.


1 commentaires

Fminshi: répondit à votre question sur Mac, Mod Me Up.



5
votes

Le code réel se trouve dans les bibliothèques standard spécifiques à la plate-forme fournie avec votre compilateur, vous pouvez le voir en examinant la source de mise en œuvre de la bibliothèque standard.

Voici la documentation (et la source) pour libstdc ++ by gnu (il est livré avec gcc ): http://gcc.gnu.org/onlineDocs/libstDC++/Latest-Doxygen/index.html .

Téléchargez la source de l'un de ces miroirs: http://gcc.gnu.org/mirrors.html


1 commentaires

Merci pour ce grand lien! Il a exactement ce que je cherchais.



2
votes

La norme C ++ elle-même est celle-ci: une norme. Dont la mise en œuvre est effectuée par de nombreux vendeurs. STLPORT et GNU LIBSTDC ++ sont à la fois open source et peuvent être examinés dans son ensemble. Visual Studio Ships avec la bibliothèque standard de Dinkumware C ++. C'est une source fermée.

Néanmoins, vous pouvez toujours voir la source des en-têtes en ouvrant l'annuaire Inclure de votre Lib standard C ++. Les fichiers s'appellent comme si vous les incluez. Une grande partie est mise en œuvre dans les en-têtes de toute façon. Mais sont plutôt illisibles à l'œil non formé.

Mais quand il s'agit d'utiliser la bibliothèque C ++ ne dépend pas du code source exact de celui-ci, mais plutôt sur ce que dit la norme C ++. Ne programmez pas à une implémentation, mais plutôt à la norme.


0 commentaires

2
votes

exécutez cette commande à partir de votre ligne de commande: xxx

qui vous dira le répertoire souhaité.


0 commentaires