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

 


Dernière réponse
Sujet : c++ : la galère des unresolved external symbol
Profil supprimé 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 !!!

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
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 !!!
wpk 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.
hein ? pourquoi ?
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 ...
BENB 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...
j'ai pas de fonctions inline !!!!!
wpk 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)
gooopil 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
wpk c'est a la compil ou au linkage ton bleme?
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
juldjin 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).
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.
End-i 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...
nnovic 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 ?
j'ai verifié, tout est bien linké alors faut trouver autre chose !!!
--> 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.
Goopil 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...
Gigathlon Tu as dû utiliser plusieurs fichiers source, il doit manquer des #include "base_class.h"...
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

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)