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++

  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:
    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