Probleme avec le "linker"

Signaler
Messages postés
56
Date d'inscription
vendredi 18 mai 2001
Statut
Membre
Dernière intervention
13 décembre 2005
-
Messages postés
56
Date d'inscription
vendredi 18 mai 2001
Statut
Membre
Dernière intervention
13 décembre 2005
-
Salut,

J'ai 3 fichiers comme ceci

Test.cpp
#include "test.h"
#include 

void PrintA(int num)
{
for(int i=0; i<num; i++)
{
cout << "A";
}
}


Test.h
void PrintA(int num);


et Noname02.cpp
#include "test.h"

void main()
{
PrintA(20);
}


Tout compile mais lorsqu'il essaye de creer l'executable j'ai l'erreur suivante

Linker Error: Undefined Symbol PrintA(int) in module NONAME02.CPP

L'erreur doit etre bete mais reste que je sais pas ce quoi?
Quelqu'un a une idee?

Merci d'avance

6 réponses

Messages postés
56
Date d'inscription
vendredi 18 mai 2001
Statut
Membre
Dernière intervention
13 décembre 2005

J'ai oublie de dire que j'utilise Borland Turbo C++ 3.0.
Messages postés
455
Date d'inscription
samedi 26 octobre 2002
Statut
Membre
Dernière intervention
6 avril 2004
8
Salut

ce que tu décris DOIT marcher
l'erreur peut être que le BON test.h ne soit pas dans le répertoire de Noname02.cpp... et qu'il y ait un mauvais test.h
as tu bien sauvegardé les fichiers avant la compile/link
sinon, le standard veut que main ait un prototype
int main ,mais ce ne devrait pas gêner.
...
Messages postés
56
Date d'inscription
vendredi 18 mai 2001
Statut
Membre
Dernière intervention
13 décembre 2005

Oui, j'ai bien sauvegarde tous les fichiers et ils sont tous dand le meme dossier.

J'ai aussi tester avec VC++ et j'ai eu le meme type d'erreur.
Je suis vraiment confus.

Par contre, si je remplace "test.h" dans Noname02.cpp par "test.cpp", TOUT MARCHE et je comprend pas pourquoi?
Messages postés
455
Date d'inscription
samedi 26 octobre 2002
Statut
Membre
Dernière intervention
6 avril 2004
8
salut !

si ça marche lorsque tu inclues test.cpp il y a deux éventualités
1) tu as oublié de rajouter le fichier test.cpp à ton projet et le linkeur ne le prend pas en compte
2)tu as déclaré ta fonction PrintA inline

je penche plutôt pour la première
Messages postés
56
Date d'inscription
vendredi 18 mai 2001
Statut
Membre
Dernière intervention
13 décembre 2005

Merci !!!

T'avais raison, c'est le numero 1. J'ai tester sous VC++ et ca fonctionne.

Maintenant comment creer un projet sous TC++? Je vois 'open project' et 'close project' mais rien pour en creer un. Meme chose lorsque je sauvegarde, il n'y a rien qui a rapport avec un projet.
Messages postés
56
Date d'inscription
vendredi 18 mai 2001
Statut
Membre
Dernière intervention
13 décembre 2005

Je me reprends, ca fonctionne suos VC++ mais toujours pas sous TC++. J'ai mis tout le ficher dans le meme projet et j'ai toujours la meme erreur.