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 :

problème de linkage avec un programme simple


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2009
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 15
    Par défaut problème de linkage avec un programme simple
    Bonjour,

    J'ai fait un petit programme très simple sous VC++ express 2012
    mais j'ai un problème lors de la compilation.
    Il semble que le programme n'arrive pas a trouver les différentes définitions des fonctions, problème de linkage?

    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
     
    /* définition de la classe point */
    #include "point1.h"
    #include <iostream>
    using namespace std ;
     
    point::point (double abs, double ord)
    { x = abs ; y = ord ;
    }
    void point::deplace (double dx, double dy)
    { x = x + dx ; y = + dy ;
    }
    void point::affiche ()
    { cout << "Mes coordonnées cartésiennes sont " << x << " " << y << "\n" ;
    }

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    * fichier POINT1.H */
    /* déclaration de la classe point */
     
    class point
    {
    double x, y ; // coordonnées (cartésiennes) du point
    public :
    point (double, double) ; // constructeur
    void deplace (double, double) ; // déplacement
    void affiche () ; // affichage
    } ;


    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
     
    // Essai_point.cpp*: définit le point d'entrée pour l'application console.
    //
     
    #include "stdafx.h"
    #include "point1.h"
    using namespace std ;
     
     
    int _tmain(int argc, _TCHAR* argv[])
    {
    point p (1.25, 2.5) ; // construction d'un point de coordonnées 1.25 2.5
    p.affiche () ; // affichage de ce point
    p.deplace (2.1, 3.4) ; // déplacement de ce point
    p.affiche () ; // nouvel affichage
    return 0;
    }

    et j'obtiens les erreurs suivantes:



    Erreur 4 error LNK1120: 3 externes non résolus C:\Users\seba\Documents\Visual Studio 2012\Projects\Essai_point\Release\Essai_point.exe Essai_point

    Erreur 1 error LNK2001: symbole externe non résolu "public: __thiscall point::point(double,double)" (??0point@@QAE@NN@Z) C:\Users\seba\Documents\Visual Studio 2012\Projects\Essai_point\Essai_point\Essai_point.obj Essai_point

    Erreur 2 error LNK2001: symbole externe non résolu "public: void __thiscall point::affiche(void)" (?affiche@point@@QAEXXZ) C:\Users\seba\Documents\Visual Studio 2012\Projects\Essai_point\Essai_point\Essai_point.obj Essai_point



    Erreur 3 error LNK2001: symbole externe non résolu "public: void __thiscall point::deplace(double,double)" (?deplace@point@@QAEXNN@Z) C:\Users\seba\Documents\Visual Studio 2012\Projects\Essai_point\Essai_point\Essai_point.obj Essai_point
    J'ai pas trouve sur le net d'explication claire a mon problème.
    Quelqu'un pourrait il m'indiquer la source de l'erreur.

    Merci

  2. #2
    Membre averti
    Inscrit en
    Juin 2009
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 15
    Par défaut mon code marche sur code::blocks
    J'ai essaye mon code sur code::blocks, et je n'ai eu aucun problème.

    j'aurai donc voulu connaitre les problèmes ou nouvelles règles de linkage sur vc++ express 2012.

    Merci

  3. #3
    Membre Expert
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    1 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 711
    Par défaut
    Hello,

    Citation Envoyé par sebintokyo Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    void point::deplace (double dx, double dy)
    { x = x + dx ; y = + dy ;
    }
    Petite faute de frappe ici.

    Sinon, l'implémentation de ta classe est bien dans un fichier .cpp ? (Et ce fichier est bien inclus au projet ?)

  4. #4
    Membre expérimenté
    Homme Profil pro
    Analyse système
    Inscrit en
    Novembre 2008
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyse système
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 227
    Par défaut
    Bonjour,

    Vu comme ca, il ne semble pas y avoir de problème. Tu devrais néanmoins penser à commencer tous tes fichiers de déclaration de classe par des
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    #ifndef MACLASSE
    #define MACLASSE
     
    class MaClasse {
    ......
    };
     
    #endif
    Ceci t'évitera les déclaration multiples.

    Tu peux aussi essayer de recompiler ton projet en t'assurant bien que tu as mis tous les warnings.

Discussions similaires

  1. Eclipse, erreurs avec un programme simple
    Par sassien dans le forum Eclipse Java
    Réponses: 5
    Dernier message: 22/01/2008, 13h28
  2. Problème de linkage avec template
    Par Invité dans le forum Langage
    Réponses: 4
    Dernier message: 05/01/2008, 16h34
  3. Problème de linkage avec g++
    Par GarulfoLinux dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 08/08/2007, 19h57
  4. Problème au linkage avec mfc42d
    Par GLDavid dans le forum VC++ .NET
    Réponses: 6
    Dernier message: 04/01/2007, 11h32
  5. Problème de linkage avec la librairie DevIl
    Par Drannor dans le forum DevIL
    Réponses: 1
    Dernier message: 18/01/2006, 23h05

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