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

  FORUM HardWare.fr
  Programmation
  C++

  lien pour signification des messages d'erreurs

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

lien pour signification des messages d'erreurs

n°545842
arghbis
salops de dauphins
Posté le 21-10-2003 à 10:04:11  profilanswer
 

Salut tout le monde!
 
je recherche un lien ou un tutorial pour apprendre à interpréter les messages d'erreurs pouvant apparaitre à l'exécution d'un programme en C++.
 
actuellement, mon prog compile bien, mais à l'exécution il me sort un truc du genre :
GraphExtraction.so: undefined symbol: _ZN13ParametersSetD1Ev (traduit avec c++filt, ça donne : ParametersSet::~ParametersSet [in-charge]())
 
donc je me doutes bien qu'il y a un problème avec mon destructeur, mais je vois pas lequel pour l'instant.
 
voilà, si vous avez un lien, une idée, un début de lien ou d'idée, enfin help quoi!! ;-)
 
merci

mood
Publicité
Posté le 21-10-2003 à 10:04:11  profilanswer
 

n°545845
chrisbk
-
Posté le 21-10-2003 à 10:08:14  profilanswer
 

t'as deja un enorme probleme de vocabulaire, et visiblement aucune idee de comment un programme C est transformé en un executable.
L'erreur que tu cites ici n'est en aucun cas une erreur d'execution, mais une erreur de link (edition de lien si tu preferes) qui est la derniere etape avant la creation de ton executable final.
 
Ce qu'il essaye de te dire c'est que tu fais appel a un destructeur, mais que tu n'a pas programmer ledit destructeur
 
proot j'ai rien dit, pas vu que c'etait un SO, mea culpa


Message édité par chrisbk le 21-10-2003 à 10:08:53
n°545869
LetoII
Le dormeur doit se réveiller
Posté le 21-10-2003 à 10:29:19  profilanswer
 

chrisbk a écrit :

t'as deja un enorme probleme de vocabulaire, et visiblement aucune idee de comment un programme C est transformé en un executable.
L'erreur que tu cites ici n'est en aucun cas une erreur d'execution, mais une erreur de link (edition de lien si tu preferes) qui est la derniere etape avant la creation de ton executable final.
 
Ce qu'il essaye de te dire c'est que tu fais appel a un destructeur, mais que tu n'a pas programmer ledit destructeur
 
proot j'ai rien dit, pas vu que c'etait un SO, mea culpa


 
Ben c presque pareil sauf que l'édition des lien se fait à l'exécution, d'où pas d'erreur à la compil mais à l'exécution. T'étais sur la bonne voie ;)


---------------
Le Tyran
n°545873
chrisbk
-
Posté le 21-10-2003 à 10:31:08  profilanswer
 

LetoII a écrit :


 
Ben c presque pareil sauf que l'édition des lien se fait à l'exécution, d'où pas d'erreur à la compil mais à l'exécution. T'étais sur la bonne voie ;)


 
ouais mais ma phrase d'intro tombait un peu a plat :D

n°545880
arghbis
salops de dauphins
Posté le 21-10-2003 à 10:36:48  profilanswer
 

en premier lieu, j'ai pas dit que c'était une erreur d'exécution, mais une erreur à l'exécution (au moment où j'exécute le programme général), et je sais (enfin j'ai découvert en cherchant un peu) que c'est une erreur d'exécution de lien).
 
je fais pas du c++ depuis super longtemps, et j'ai pas vraiment le temps (malheureusement) de me plonger à fond dedans, mais je trouve les messages d'erreurs peu explicites et peu de sites/bouquins où on les expliques.
 
pour ce qui est de mon destructeur, il me semblait qu'un destructeur, s'il n'est pas défini explicitement, l'est de manière implicite, et que de toutes façons, ça ne consiste qu'à écrire ~maClasse() {}
 
je me trompe?
 
j'essaye de faire de mon mieux... chuis pas un gourou c++ (pas encore, niark niark)

n°545883
chrisbk
-
Posté le 21-10-2003 à 10:40:18  profilanswer
 

Citation :

pour ce qui est de mon destructeur, il me semblait qu'un destructeur, s'il n'est pas défini explicitement, l'est de manière implicite, et que de toutes façons, ça ne consiste qu'à écrire ~maClasse() {}


 
Attention !
 
Figure 1:
 

Code :
  1. class toto
  2. {
  3. toto();
  4. ...
  5. };


 
Ici pas de destructeur de specifié: le compilo t'en fournis un par defaut, tout va bien
 
Figure 2:
 

Code :
  1. class toto
  2. {
  3. toto();
  4. ~toto();
  5. ...
  6. };


 
La tu as specifié un destructeur, il te *faut* le definir, fut il aussi trivial que :
 

Code :
  1. toto::~toto()
  2. {
  3. }


 

n°545892
arghbis
salops de dauphins
Posté le 21-10-2003 à 10:43:33  profilanswer
 

oui, c'est bien ça, c'est exactement ce que je fais (d'ailleurs c'est stupide, car s'il est trivial, autant ne pas le définir dans la classe non?).
 

n°545903
chrisbk
-
Posté le 21-10-2003 à 10:46:19  profilanswer
 

C un truc a toi la paramaterSet ou pas ?

n°545913
arghbis
salops de dauphins
Posté le 21-10-2003 à 10:50:13  profilanswer
 

ouaip, mais ce qui est étonnant, c'est que si je commente la ligne qui déclare le destructeur, il ne me sort plus cette erreur.
 
il me sort le même genre d'erreur si par exemple je définis un constructeur vide. donc je vois bien comment résoudre l'erreur, mais je ne comprends pas pourquoi elle apparait. je n'ai vu nulle part qu'on ne pouvait pas déclarer explicitement les constructeurs et destructeurs s'ils sont identiques à ceux fournis par défaut.
 
tu y comprends qqchose?

n°545914
chrisbk
-
Posté le 21-10-2003 à 10:51:38  profilanswer
 

ben si tu declares sans definir ca me parait normal

mood
Publicité
Posté le 21-10-2003 à 10:51:38  profilanswer
 

n°545915
arghbis
salops de dauphins
Posté le 21-10-2003 à 10:53:54  profilanswer
 

non non, je déclares les constructeurs et destructeurs dans mon header de classe, et dans l'implémentation, je les défini (certe, ça se résume à { } comme définition, mais bon..)
 
désolé, je m'exprime mal parfois! ;-)

n°545916
chrisbk
-
Posté le 21-10-2003 à 10:54:58  profilanswer
 

ben alors tu dois oublier de specifier un fichier au link.....

n°545919
arghbis
salops de dauphins
Posté le 21-10-2003 à 10:56:54  profilanswer
 

ouais ben non hein! si j'oubliais d'inclure un header, il compilerait pas non?
 
c vraiment zarb ce truc.
 
sinon, pour ma question plus générale, un livre ou un site pour la signification des messages d'erreur? paske le in-charge, je comprends pas trop là...


Message édité par arghbis le 21-10-2003 à 10:57:53
n°545920
chrisbk
-
Posté le 21-10-2003 à 10:57:35  profilanswer
 

non pas un header mais un fichier au link
(Comme quoi j'avais quand meme raison, le processus de compilation dans son ensemble te laisse encore reveur)

n°545926
LetoII
Le dormeur doit se réveiller
Posté le 21-10-2003 à 10:58:52  profilanswer
 

Fait péter un bout de code par ce que là on va pas s'en sortir...


---------------
Le Tyran
n°545928
arghbis
salops de dauphins
Posté le 21-10-2003 à 10:59:33  profilanswer
 

réveur, pas sûr, cauchemardeur (si ce mot existe...) ouaip, c'est possible.
 
letoII : un bout de code de koi?
 
je vais d'abord reprendre tout mon code, vérifier encore une fois que tout est bien défini comme il faut (ou comme il me semble qu'il faut) pis si y'a encore un bug/erreur je remonterait le topic.
 
enfin bon, merci d'essayer d'éclairer ma lanterne.


Message édité par arghbis le 21-10-2003 à 11:01:08
n°545935
chrisbk
-
Posté le 21-10-2003 à 11:02:22  profilanswer
 

LetoII a écrit :

Fait péter un bout de code par ce que là on va pas s'en sortir...


 
http://www.reproducts.de/produkte/2001/0002_derrick/derrick.jpg
 
 
l'enquete s'annonce difficile

n°546843
arghbis
salops de dauphins
Posté le 22-10-2003 à 10:44:31  profilanswer
 

bon ben ça y est, j'ai trouvé l'erreur, et je suis un boulet!
 
grosso modo, comme je ne suis pas au top en c++, ben il y a des choses pas évidentes pour moi, genre, un template ou assimilé, ben tu définis et tu déclares les fonctions dans le même fichier ou alors tu utilises le découpage "classique" en .h et .cpp, mais en faisant un include du cpp dans le .h .
 
hors, je n'utilisais pas cette syntaxe, alors forcément, il ne trouvait pas les implémentations des fonctions déclarées.
 
Chuis un boulet, ok c vrai, mais j'ai appris un truc utile au moins!!

n°546849
Taz
bisounours-codeur
Posté le 22-10-2003 à 10:54:46  profilanswer
 

on va faire la promo de gSTLfilt http://www.bdsoft.com/tools/stlfilt.html

n°546854
arghbis
salops de dauphins
Posté le 22-10-2003 à 10:57:28  profilanswer
 

tiens, ça à l'air sympa comme truc! merci


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

  lien pour signification des messages d'erreurs

 

Sujets relatifs
[HTML] comment faire pour qu'un lien hypertexte...Afficher une info bulle sur un lien [resolu]
[HTML] Ouvrir un lien dans une nouvelle fenêtreLien avec blank
lien pour pop-up pour paramétrer la taille au chargement etc....Lien de page avec _GET
[debutant][Resolu] Attraper les Erreurs SQL[JS] tjs le logo 'Terminé mais il reste des erreurs sur la page'
[résolu] Problème de reconnaissance des nouveaux messages ...Faire un lien qui reload la page linkée...
Plus de sujets relatifs à : lien pour signification des messages d'erreurs


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