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

Visual C++ Discussion :

Probl�me de compilation


Sujet :

Visual C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    F�vrier 2008
    Messages
    5
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2008
    Messages : 5
    Par d�faut Probl�me de compilation
    Bonjour,

    je rencontre un probl�me lors de la compilation de mes fichiers c++ avec visual studio 2005.

    En effet, lors de la compilation de sources, une erreur de linkage apparait (error lnk2019) lorsque j'utilise une m�thode que j'ai d�finie.

    Le plus bizarre (pour moi) c'est que cette erreur apparait lorsque la m�thode est d�finie dans le fichier.cpp mais pas lorsqu'elle est d�finie directement dans le fichier.h.

    Malheureusement, je n'ai pas le droit de diffuser une seule ligne de code de ce que je fait. Je vais donc essayer de faire comprendre la structure de mon code.

    J'ai une solution dans visual studio dans laquelle apparait plusieurs projet. L'un de ces projet contient mes fichier.h et .cpp contenant la m�thode que nous nommeront methode(). Dans un autre projet est d�velopper une appli de test nomm�e test incluant fichier.h et faisant appel � m�thode(). Si m�thode() est d�finie directement dans le .h, je n'ai aucun probl�me, mais si elle l'est dans le .cpp, probl�me de linkage.

    J'esp�re avoir �t� suffisamment clair pour vous permettre de comprendre et de m'aider.

    Merci d'avance

  2. #2
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    salut,
    ta m�thode ne doit pas �tre d�finie correctement dans ton .cpp.
    ou tu as un probl�me de projet pas � jour .
    un nettoyage du projet et une reconstruction peut r�soudre le probl�me.
    ou tu as plusieurs occurrences de ton .h dans tes arborescences de projet.
    ou si tu travailles avec sourcesafe un probl�me de mise � jour etc...

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    F�vrier 2008
    Messages
    5
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2008
    Messages : 5
    Par d�faut
    Merci de ton aide.

    Citation Envoy� par farscape Voir le message
    salut,
    ta m�thode ne doit pas �tre d�finie correctement dans ton .cpp.
    Ma m�thode � l'air correcte et c'est la m�me que quand je la d�finie dans le .h (couper/coller. enfin pour le corps)

    Citation Envoy� par farscape Voir le message
    ou tu as un probl�me de projet pas � jour .
    Ca n'est pas �a non plus

    Citation Envoy� par farscape Voir le message
    un nettoyage du projet et une reconstruction peut r�soudre le probl�me.
    Ca ne fonctionne pas

    Citation Envoy� par farscape Voir le message
    ou tu as plusieurs occurrences de ton .h dans tes arborescences de projet.
    Non

    Citation Envoy� par farscape Voir le message
    ou si tu travailles avec sourcesafe un probl�me de mise � jour etc...
    Non plus, je n'utilise pas sourcesafe.

    Aurais-tu d'autres id�es ?

    Merci

  4. #4
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    sauf si ton code a une particularit� ,sans le voir difficile de r�pondre .
    en raisonnant par l'absurde impl�menter une m�thode dans un .cpp fonctionne on en est s�r ..,
    donc il faut chercher ce qui sort de l'ordinaire.
    par exemple v�rifier le type des arguments utilis�s pour voir si il n'y a pas de red�finition.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    F�vrier 2008
    Messages
    5
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2008
    Messages : 5
    Par d�faut
    Bon, j'ai obtenu la permission de mes sup�rieurs pour publier un bout du code (tr�s �pur�) mais qui pose probl�me quand m�me.

    Tout d'abord le fichier bvh.h:
    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 <string>
    using namespace std;
     
    class Bvh
    {
    public:
    	Bvh(void){}
            Bvh(string inputFileName){inputFile = inputFileName;}
            ~Bvh(void){}
     
    	void copyHeader(void);
    	void writeMatrix(void){}
     
    	void setIntputFile(string newName){inputFile=newName;}	
    	string getIntputFile(void);
     
    private:
    	string inputFile;
    };
    Ensuite le fichier bvh.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
    #include "Bvh.h"
    #include <iostream>
    #include <stdio.h>
    #include <stdlib.h> 
    #include <fstream>
     
    using namespace std;
     
    void Bvh::copyHeader(){
    	string path = "../../DATA/";
    	cout<<path<<endl;
    }
     
    string Bvh::getIntputFile()
    {
    	return inputFile;
    }
    L'appli de test test.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
    #include <iostream>
    #include <stdio.h>
    #include "Bvh.h"
    using namespace std;
     
    int 
    main(){
    	int pause;
    	Bvh bvh("bvh/unknown.bvh");
    	cout<<bvh.getIntputFile()<<endl;
    	bvh.copyHeader();
    	cin>>pause;
    	return 0;
    }
    Et enfin, les erreurs
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    test.obj : error LNK2019: unresolved external symbol "public: void __thiscall Bvh::copyHeader(void)" (?copyHeader@Bvh@@QAEXXZ) referenced in function _main
    test.obj : error LNK2019: unresolved external symbol "public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __thiscall Bvh::getIntputFile(void)" (?getIntputFile@Bvh@@QAE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ) referenced in function _main
    La m�thode getInputFile() est la m�thode que j'avais d'abord d�finie dans le .h et qui pose probl�me dans le .cpp.
    L'autre m�thode qui pose probl�me est la m�thode copyHeader() mais je n'ai pas essay� de la d�finir dans le .h auparavant.

    A tous les coups, il s'agit d'une erreur idiote de ma part mais aucun de mes coll�gues n'arrivent � mettre le doigt dessus.

    Merci de votre aide

  6. #6
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    salut;
    essaye:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    string Bvh::getIntputFile(void)
    {
        return inputFile;
    }

Discussions similaires

  1. probl�me de compilation sous visual C++
    Par fabmili dans le forum MFC
    R�ponses: 4
    Dernier message: 08/02/2004, 19h52
  2. probl�me de compil devc++ socket
    Par stefdem dans le forum Autres �diteurs
    R�ponses: 2
    Dernier message: 11/12/2003, 11h33
  3. R�ponses: 1
    Dernier message: 29/10/2003, 12h16
  4. Probl�me de compilation de la DLL du XMLRad
    Par [DreaMs] dans le forum XMLRAD
    R�ponses: 2
    Dernier message: 16/04/2003, 16h46
  5. R�ponses: 1
    Dernier message: 27/05/2002, 01h44

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