Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
882 connectés 

  FORUM HardWare.fr
  Programmation

  c++ : la galère des unresolved external symbol

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

c++ : la galère des unresolved external symbol

n°28306
Profil sup​primé
Posté le 28-04-2001 à 19:50:23  answer
 

quand je fait un héritage en public, l'appel par la classe dérivée des fonctions de la classe de base donne lieu a des "unresolved external symbol" pour cette fonction.
 
Pourquoi ? j'y comprend plus rien

mood
Publicité
Posté le 28-04-2001 à 19:50:23  profilanswer
 

n°28314
Gigathlon
Quad-neurones natif
Posté le 28-04-2001 à 20:53:43  profilanswer
 

Tu as dû utiliser plusieurs fichiers source, il doit manquer des #include "base_class.h"...

n°28328
Goopil
Posté le 29-04-2001 à 00:41:06  profilanswer
 

Ahhhhhhhh
Voila pourquoi mister mat il a des bonnes notes en C++...
Je profite de ton post pour parler du mien : C le post Opengl - Depth Buffer : avec glEnable(GL_DEPTH_TEST) y'a pu rien ki s'affiche...

n°28391
Profil sup​primé
Posté le 29-04-2001 à 14:38:45  answer
 

--> gigathlon
je verifirait mais il me semble que j'ai tout inclu
 
--> gooopil
Salut !!! qu'est ce que tu fait là ???
bon, si tu deboggais mon TP j'aurais pas besoin de venir ici !!!
j'ai bien recu ton mail et je m'y met bientot pour GL.

n°28409
Profil sup​primé
Posté le 29-04-2001 à 19:36:17  answer
 

j'ai verifié, tout est bien linké alors faut trouver autre chose !!!

n°28410
nnovic
Posté le 29-04-2001 à 19:45:45  profilanswer
 

Tu pourrais donner la partie du code qui génère cette erreur ? Ce serait plus facile pour te dépanner...
Sinon, est-ce que les fonctions en question ne seraient pas déclarées en "private" par hasard ?

n°28430
End-i
Posté le 30-04-2001 à 01:45:08  profilanswer
 

si t'as visual c++
 
fais "rebuild all"
 
et si ca marche pas, y me semble qu'il y a un "clean" ou qqchose du genre... à moins que je me trompe...

n°28503
Profil sup​primé
Posté le 30-04-2001 à 13:24:36  answer
 

je vais essayer le clean et rebuilt all (je suis sous cro$oft visual 6). les fonctions sont en public. si ca foire toujours je vous met un zip contenant le TP.

n°28518
juldjin
Posté le 30-04-2001 à 14:45:25  profilanswer
 

t'as peut etre simplement oublé un point virgule dans ton .h ou tu derive en public, erreur bete mais fréquente ( je le fais tout le temps).


---------------
"l'homme est un loup pour l'homme"
n°28587
Profil sup​primé
Posté le 30-04-2001 à 20:07:04  answer
 

les points virgule semblent bon mais ca marche toujours pas.
j'ai fait clean et rebuilt, idem ca marche pas.
 
si qqun est vraiment motivé il a qu'a me mailer et je lui envoie mon TP (je peut toujours rever ...)
mr_mat@caramail.com

mood
Publicité
Posté le 30-04-2001 à 20:07:04  profilanswer
 

n°28593
wpk
Posté le 30-04-2001 à 20:46:29  profilanswer
 

c'est a la compil ou au linkage ton bleme?

n°28637
gooopil
pfiew
Posté le 01-05-2001 à 12:16:42  profilanswer
 

Son problème (le mein d'ailleurs), c'est pendant le linkage (je vais me faire engeulé par mr mat si je dit des conneries). Le pire c qu'on l'a fait séparément, nos deux codes sourcs sont semblables mais ça fait la même erreur.  
Sinon, cher mister mat, l'@ du tutorial c antoche.fr.st

n°28640
wpk
Posté le 01-05-2001 à 12:43:22  profilanswer
 

verifiez les fonctions inline, quand tu as une fonction inline dans ta classe, au linkage elle disparait des fichiers .obj du coup si t'as une lib ou tu veux exporter des fonctions qui sont inline, tu te choppes un mesage de ce genre quand un utilisateur de ton module essaye de linker son appli. Par inline j'entends les methodes decleres comme tel et les operations dont le corps a ete defini directement a l'interieur de ta classe (encore que ce dernier cas, en general ca pose pas du tout de probleme du moment ou tu inclus bien le .h dans les 2 fichiers .cpp)

n°28785
Profil sup​primé
Posté le 02-05-2001 à 15:08:02  answer
 

j'ai pas de fonctions inline !!!!!

n°28798
BENB
100% Lux.
Posté le 02-05-2001 à 16:06:10  profilanswer
 

C'est pas complique...
si vous avez des uresolved external, c'est que vous utilisez des fonctions ou des variables qui n'ont pas ete definies. Elles ont ete declaree (.h) mais pas definies. En clair il vous maque des .C ou des .o ou des libs...

n°29034
Profil sup​primé
Posté le 03-05-2001 à 16:21:50  answer
 

maintenant ca marche !
 
j'ait mis #include <truc.cpp> au lieu de truc.h et ca marche.
 
je comprend pas pourquoi ca marchait pas, puisque le fichier cpp était inclu dans le projet. m'enfin ...

n°29350
Profil sup​primé
Posté le 04-05-2001 à 23:21:45  answer
 

hein ? pourquoi ?

n°29362
wpk
Posté le 05-05-2001 à 00:17:29  profilanswer
 

quand tu inclus le a.cpp dans b.cpp, le preprocesseur recopie litteralement le code qu'il y a dans a.cpp au debut de b.cpp .
Du coup, les unresolved symbols disparaissent mais cette solution est "sale".  
Si jamais, tu a besoin des memes fonctionalites dans un autre fichier, si tu reutilise un include .cpp, eh bien a la place des unresolved symbol tu va recuperer un already defined error. C'est pour ca qu'il faut mettre juste des definitons de fonctions dans les .h et pas du code.
Ton erreur doit venir du fait que le code dans le fichier .cpp qui te sert d'include n'est pas compile ou ne fait pas partie des dependances du linkeur. En gros, verifie bien que le .cpp en question se trouve dans le projet, dans les sources files.
La seule fois ou tu est oblige de mettre du code dans le .h, c'est dans le cas des templates. Si t'est dans ce cas, tu peux utiliser l'include .cpp sans bleme.

n°29391
Profil sup​primé
Posté le 05-05-2001 à 13:30:47  answer
 

voila qui explique tou !
 
en effet, c'est un odèle de classe donc des template.
je savais pas que pour les teplate ca marchait pas comme d'hab, parce que les .cpp étaient bien inclus dans le projet.
 
merci, je comprend enfin !!!


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  c++ : la galère des unresolved external symbol

 

Sujets relatifs
VB6 et dase de données :quel galère!!!!!!!!!! 
Plus de sujets relatifs à : c++ : la galère des unresolved external symbol


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR