Problèmes compilation projets ??

Résolu
dmk04 Messages postés 206 Date d'inscription samedi 29 octobre 2005 Statut Membre Dernière intervention 7 mars 2012 - 5 juin 2006 à 17:50
dmk04 Messages postés 206 Date d'inscription samedi 29 octobre 2005 Statut Membre Dernière intervention 7 mars 2012 - 6 juin 2006 à 09:15
Bonjour,

j'ai un problème avec un projet... J'ai essayé de simplifier le problème au maximum avant de le poser et voilà ce que ça donne :

On crée un projet "classe" avec 1 fichier "classe.h" dans un dossier "classe" :

// classe.h
#ifndef CLASSE_H
#define CLASSE_H

#include <math.h>

class classe
{
private :
    double num;
public :
// Ca marche (pas de classe.cpp dans le projet)
    classe(double val) {num = val;};
    ~classe() {};
    double getRacine() {return sqrt(num);};
};

#endif

On crée un autre projet : "testClasse" avec 1 fichier "testClasse.cpp" dans le dossier "testClasse" :

// testClasse.cpp
#include "..\classe\classe.h"

int main()
{
    classe * test = new classe(10);
    double d = test->getRacine();
    delete test;
    return 0;
}

On compile les projets... ça marche, c'est magnifique

Modifions un petit peu le projet "classe" : ajout d'un fichier "classe.cpp"
Ce qui nous donne :

// classe.h
#ifndef CLASSE_H
#define CLASSE_H

#include <math.h>

class classe
{
private :
    double num;
public :
// Ca ne marche pas : classe.cpp ajouté au projet
    classe(double val);
    ~classe();
    double getRacine();
};

#endif

// classe.cpp
#include "classe.h"   

double calcRacine(double val);

classe::classe(double val) {num = val;}
classe::~classe() {}
double classe::getRacine() {return sqrt(num);}

void main(void){}

On compile "classe" -> OK
On compile "testClasse" -> Erreurs...
testClasse.obj : error LNK2019: symbole externe non résolu "public: __thiscall classe::~classe(void)" (??1classe@@QAE@XZ) référencé dans la fonction "public: void * __thiscall classe::`scalar deleting destructor'(unsigned int)" (??_Gclasse@@QAEPAXI@Z)

testClasse.obj : error LNK2019: symbole externe non résolu "public: double __thiscall classe::getRacine(void)" (?getRacine@classe@@QAENXZ) référencé dans la fonction _main

testClasse.obj : error LNK2019: symbole externe non résolu "public: __thiscall classe::classe(double)" (??0classe@@QAE@N@Z) référencé dans la fonction _main

Merci pour votre aide

A+

4 réponses

cs_laurent1024 Messages postés 987 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 août 2012 25
5 juin 2006 à 23:20
Enleve cette fonction, main et essaye de compiler directemen ton fichier main un projet

++
3
cs_laurent1024 Messages postés 987 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 août 2012 25
5 juin 2006 à 21:17
#include "classe.h"   

double calcRacine(double val);

classe::classe(double val) {num = val;}
classe::~classe() {}
double classe::getRacine() {return sqrt(num);}

void main(void){}  <- c'est une erreur de copier coller ?

++
0
dmk04 Messages postés 206 Date d'inscription samedi 29 octobre 2005 Statut Membre Dernière intervention 7 mars 2012
5 juin 2006 à 21:21
non, c'est juste que si tu ne met pas de main, il compile pas parce qu'il ne trouve pas la fonction "main", donc je lui en met une pour lui faire plaisir. Quand je met tout dans "classe.h" il ne demande pas de "main"...

A+
0
dmk04 Messages postés 206 Date d'inscription samedi 29 octobre 2005 Statut Membre Dernière intervention 7 mars 2012
6 juin 2006 à 09:15
Salut,

merci tu m'a ouvert les yeux... Je savais que c'était tout con... Il ne faut pas faire 2 projets mais un seul qui contient les 3 fichiers...

A+
0
Rejoignez-nous