IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques Discussion :

Différence pour GCC avec C et C++?


Sujet :

Bibliothèques

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    220
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 220
    Points : 100
    Points
    100
    Par défaut Différence pour GCC avec C et C++?
    Bonjour à tous.


    J'ai installé (et désinstaller), à plusieurs reprises, MinGW pour voir les différences(bibliothèque, exécutable, etc) entre le C et le C++.

    Voici les 3 configurations:
    C et C++ ensembles, ensuite C tout seul, et enfin C++ tout seul.

    1) Toutes bibliothèques (C et C++) sont présentes pour les 3 cas de figures!
    2) La seul différence notable est l'absence de 2 exécutables (g++ et cc1plus) qui sont manquants dans la cas de figure C uniquement.
    3) J'ai pu compilé un programme en pure C avec le cas de figure C++ uniquement.


    Quelles sont donc les différences entre ces différentes options?

    D'avance, merci.

  2. #2
    Membre expert
    Avatar de kwariz
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Octobre 2011
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2011
    Messages : 898
    Points : 3 352
    Points
    3 352
    Par défaut
    Bonjour,

    c++ dérive de C mais il n'en est est pas un super ensemble strict. Par exemple le programme suivant va compiler indifféremment en C ou en c++ :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    #include <stdio.h>
    int main(void)
    {
      printf("size of 'a' = %zu\n", sizeof('a'));
      return 0;
    }
    Pourtant le programme créé avec le compilo C va afficher 4 alors que celui créé avec le compilo c++ va afficher 1.

    Ensuite on peut rapidement créer des sources C valides qui ne compileront pas en c++ en utilisant simplement comme identifiant des mots clés réservés de c++ qui ne le sont pas en C :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    int main(void)
    {
      int new=10;
      return 0;
    }
    On peut également en construire sur les différences de comportement : en C tu peux assigner à un pointeur sur void n'importe quel autre pointeur et inversement sans faire aucun cast, mais pas en c++ :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    #include <stdlib.h>
    int main(void)
    {
      int *tab=malloc(sizeof *tab);
      return 0;
    }
    Donc voilà au moins 3 sources «Pure C» qui posent des problèmes et tu peux en construire d'autres sur toutes les différences C/c++ de ce genre.

    Je pense que ce qu'il faut retenir est : on compile un source C avec un compilateur C, et un source C++ avec un compilateur C++ et il ne faut jamais essayer d'utiliser un pour travailler avec l'autre.

    Ensuite quand tu parles des bibliothèques installées cela donne comme indication que pour fonctionner aussi gcc que g++ ont besoin d'elles

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    220
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 220
    Points : 100
    Points
    100
    Par défaut
    kwariz, j'ai bien compris tes 3 exemples de code.

    Ensuite quand tu parles des bibliothèques installées cela donne comme indication que pour fonctionner aussi gcc que g++ ont besoin d'elles
    kwariz, autant je peux comprendre que g++ puisse avoir besoin des bibliothèques C, autant je ne comprend pas pourquoi gcc aurait besoin des bibliothèques C++.

    Pourrais tu m'éclairer STP? (Je comprends vite, mais il faut m'expliquer longtemps )

    Cordialement.

  4. #4
    Membre expert
    Avatar de kwariz
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Octobre 2011
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2011
    Messages : 898
    Points : 3 352
    Points
    3 352
    Par défaut
    Parce qu'à partir de la version 4.8 (je crois) il est développé en c++

    Edit cf post #6

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    220
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 220
    Points : 100
    Points
    100
    Par défaut
    kwariz donc pour résumer, si les bibliothèques C++ sont présentes dans gcc
    avec le cas de figure du C uniquement sélectionné, c'est pour le fonctionnement de gcc et par pour le developpement C++, c'est bien cela?

    Cordialement.

  6. #6
    Membre expert
    Avatar de kwariz
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Octobre 2011
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2011
    Messages : 898
    Points : 3 352
    Points
    3 352
    Par défaut
    Je me suis un peu penché sur ta question, et au final je me demande ce que tu appelles bibliothèques c++/bibliothèque c.
    Lorsque tu n'installes que gcc avec juste le compilateur c en paquet binaire, tu te retrouves avec quelques binaires, et quelques bibliothèques mais aucune bibliothèque standard c++. Elle n'est installée que comme dépendance de g++.
    Cela est le comportement par défaut de ma distribution linux, maintenant comme tu utilises mingw (donc je suppose sous windows), le mainteneur des installeurs mingw a manifestment une autre approche .

    Il n'y a aucune bibliothèque C standard livrée avec gcc (en gros), celle-ci est juste un prérequis. Par exemple avec ma distribution la glibc est installée par défaut, mais je pourrais (sans doute avec du mal ) la changer pour une autre comme la µlibc ou une autre.
    En revanche, si je ne me trompe pas, la bibliothèques standard c++ est elle livrée avec g++, mais en lui même le binaire g++ n'a aucune dépendance envers celle-ci.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    220
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 220
    Points : 100
    Points
    100
    Par défaut
    maintenant comme tu utilises mingw (donc je suppose sous windows), le mainteneur des installeurs mingw a manifestment une autre approche .
    Alors, pour la bibliothèque C++ je n'en suis pas sûr, par contre il y a effectivement les includes pour celui-ci (iostream par exemple).

    Bon de toutes manière ce n'est pas très grave en soit, c'est juste que c'est derroutant pour un novice comme moi.

    Cordialement.

Discussions similaires

  1. [MySQL] Résultat insuffisant pour la différence deux dates avec une requête mysql
    Par onesat dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 29/08/2014, 13h14
  2. Problème pour compiler avec gcc
    Par Mick.Zen dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 28/06/2006, 14h05
  3. [Kylix] Erreur "File not Found : Windows.dcu"
    Par derrick23_2003 dans le forum EDI
    Réponses: 4
    Dernier message: 27/12/2005, 11h18
  4. Réponses: 3
    Dernier message: 27/08/2003, 21h14
  5. Créer de programme pour WIndows avec Turbo Pascal
    Par kaygee dans le forum Turbo Pascal
    Réponses: 16
    Dernier message: 20/08/2003, 23h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo