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

C++ Discussion :

comment compiler en c++ 2 fichier .cpp et un fichier header .h


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    163
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 163
    Par défaut comment compiler en c++ 2 fichier .cpp et un fichier header .h
    Bonjour,
    j'ai une classes main.cpp et une autre classe Point.cpp et un header Point.h et je cherche compilé cette exempleet voila le code
    Point.h
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    #ifndef POINT_H
    #define POINT_H
     
    class Point
    {
      public:
        double x,y;
        double distance(const Point &P);
        Point milieu(const Point &P); 
    };
    #endif
    Point.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    #include "Point.h"
    #include <cmath>
     
    double Point::distance(const Point &P)
    {
        double dx,dy;
        dx = x - P.x;
        dy = y - P.y;
        return sqrt(dx*dx + dy*dy); 
    }
     
    Point Point::milieu(const Point &P)
    {
        Point M;
        M.x = (P.x+x) /2;
        M.y = (P.y+y) /2;
        return M;
    }
    main.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    #include <iostream> 
    using namespace std;
    #include "Point.h"
     
    int main() 
    { 
        Point A, B, C;
        double d;
        cout << "SAISIE DU POINT A" << endl;
        cout << "Tapez l'abscisse : "; cin >> A.x;
        cout << "Tapez l'ordonnée : "; cin >> A.y;
        cout << endl;
        cout << "SAISIE DU POINT B" << endl;
        cout << "Tapez l'abscisse : "; cin >> B.x;
        cout << "Tapez l'ordonnée : "; cin >> B.y;
        C = A.milieu(B);
        d = A.distance(B);
        cout << endl;
        cout << "MILIEU DE AB" << endl;
        cout << "L'abscisse vaut : " << C.x << endl;
        cout << "L'ordonnée vaut : " << C.y << endl;
        cout << endl;
        cout << "La distance AB vaut :" << d << endl;
        return 0;
    }
    Merci de me répondre le plus rapidement possible
    cordialement

  2. #2
    Rédacteur

    Avatar de Davidbrcz
    Homme Profil pro
    Ing Supaéro - Doctorant ONERA
    Inscrit en
    Juin 2006
    Messages
    2 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ing Supaéro - Doctorant ONERA

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 307
    Par défaut
    En survolant ton code, il me semble correct (et bon: usage de const). Je ne comprends pas bien ta question.

    Tu regroupe tes 3 fichiers dans un projet de ton IDE, et tu cherches le bouton compiler.
    "Never use brute force in fighting an exponential." (Andrei Alexandrescu)

    Mes articles dont Conseils divers sur le C++
    Une très bonne doc sur le C++ (en) Why linux is better (fr)

  3. #3
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Citation Envoyé par aefmaaradji Voir le message
    Merci de me répondre le plus rapidement possible
    C'est plus cher. Surtout quand on n'a pas le problème...

    Citation Envoyé par Davidbrcz Voir le message
    En survolant ton code, il me semble correct (et bon: usage de const).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #ifndef POINT_H
    #define POINT_H
     
    class Point
    {
      public:
        double x,y;
        double distance(const Point &P) const;
        Point milieu(const Point &P) const; 
    };
    #endif
    non ?

  4. #4
    Rédacteur

    Avatar de Davidbrcz
    Homme Profil pro
    Ing Supaéro - Doctorant ONERA
    Inscrit en
    Juin 2006
    Messages
    2 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ing Supaéro - Doctorant ONERA

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 307
    Par défaut
    Arf, je les avais oublié ceux là
    "Never use brute force in fighting an exponential." (Andrei Alexandrescu)

    Mes articles dont Conseils divers sur le C++
    Une très bonne doc sur le C++ (en) Why linux is better (fr)

  5. #5
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    163
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 163
    Par défaut
    Bonjour,
    en premier lieu est ce que le code et juste ?
    moi ce que je cherche c'est de compiler mon programme en orienté objet donc c'est qu'oi la ligne de commande ?
    par ce que moi j'ai éssaié sa:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    g++ man.cpp -o man
    et et il a afiché sa:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    /tmp/cctDJjO4.o: In function `main':
    main.cpp:(.text+0x2a0): undefined reference to `Point::milieu(Point const&)'
    main.cpp:(.text+0x2cd): undefined reference to `Point::distance(Point const&)'
    collect2: ld a retourné 1 code d'état d'exécution
    et j'ai mit chaqu'un dans un seul fichier (man.cpp et Point.cpp et Point.h)
    dézolé pour sa
    Envoyé par aefmaaradji Voir le message
    Merci de me répondre le plus rapidement possible
    Merci d'avance

  6. #6
    Rédacteur

    Avatar de Davidbrcz
    Homme Profil pro
    Ing Supaéro - Doctorant ONERA
    Inscrit en
    Juin 2006
    Messages
    2 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ing Supaéro - Doctorant ONERA

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 307
    Par défaut
    il faut compiler tous les fichiers .cpp ensembles.

    Exemple, tu as deux fichiers a.cpp et b.cpp. Ta commande sera
    g++ a.cpp b.cpp -o lenomdufichier
    Si tu avais un fichier c.pp, il faudrait l'ajouter à la commande.

    Mais ca va vite devenir lourd de faire ceci à la main. Renseigne toi sur les makefiles et autotools, et sur les outils qui sont en train de les remplacer aka Scons, mmake, ...
    "Never use brute force in fighting an exponential." (Andrei Alexandrescu)

    Mes articles dont Conseils divers sur le C++
    Une très bonne doc sur le C++ (en) Why linux is better (fr)

  7. #7
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    163
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 163
    Par défaut
    Merci Beaucoup Mr Davidbrcz

  8. #8
    Expert confirmé

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Billets dans le blog
    3
    Par défaut
    Et peut etre aussi sur les IDEs
    Utiliser en 2010 (presque) une ligne de commande pour faire quelque chose me semble toujours un peu... hum... bizarre (sauf pour les nostalgiques des 70s bien sur ! ).

  9. #9
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 2
    Par défaut
    en faisant un Makefile sinon ?

  10. #10
    Rédacteur

    Avatar de Davidbrcz
    Homme Profil pro
    Ing Supaéro - Doctorant ONERA
    Inscrit en
    Juin 2006
    Messages
    2 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ing Supaéro - Doctorant ONERA

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 307
    Par défaut
    Citation Envoyé par nicroman Voir le message
    Et peut etre aussi sur les IDEs
    Utiliser en 2010 (presque) une ligne de commande pour faire quelque chose me semble toujours un peu... hum... bizarre (sauf pour les nostalgiques des 70s bien sur ! ).
    Sauf que les IDE au final ne font que fournir une GUI à ce que tu appelles ligne de commande. Ce qui tourne derrière, c'est les makefiles & co.

    Ensuite, un IDE pour compiler un fichier test de 20 lignes, c'est lourd, je préfère la ligne de commande. J'aurai déjà fini de compiler que ton IDE n'aura pas fini de se lancer :p

    Enfin, avis personnel, je n'aime pas les IDE, ils ne sont pas assez puissant face à Emacs ou Vim.

    Question subsidiaire pour nicroman: Comment tu veux compiler avec un IDE quand tu tournes sur une machine sans interface graphique ? C'est makefile (ou équivalent) ou ligne de commande
    "Never use brute force in fighting an exponential." (Andrei Alexandrescu)

    Mes articles dont Conseils divers sur le C++
    Une très bonne doc sur le C++ (en) Why linux is better (fr)

  11. #11
    Membre Expert
    Avatar de white_tentacle
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    1 505
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 1 505
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Question subsidiaire pour nicroman: Comment tu veux compiler avec un IDE quand tu tournes sur une machine sans interface graphique ? C'est makefile (ou équivalent) ou ligne de commande
    On pourrait faire un IDE en ncurse, ça ressemblerait probablement à ce qu'était turbo pascal. Certains diront que vim est un IDE, mais c'est tellement peu "Integrated" tant qu'on n'a pas tout configuré que je trouve le terme abusif .

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 19/04/2012, 12h47
  2. Réponses: 3
    Dernier message: 12/07/2006, 22h21
  3. Réponses: 4
    Dernier message: 31/03/2006, 10h52
  4. Réponses: 7
    Dernier message: 22/11/2005, 14h05
  5. [Info]Comment compiler un fichier sans le lancer ?
    Par blan dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 10/10/2005, 17h03

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