pillouw
Messages postés1Date d'inscriptionsamedi 21 janvier 2017StatutMembreDernière intervention21 janvier 2017
-
Modifié par cptpingu le 22/01/2017 à 15:22
cptpingu
Messages postés3837Date d'inscriptiondimanche 12 décembre 2004StatutModérateurDernière intervention28 mars 2023
-
22 janv. 2017 à 15:20
Bonjour.
Alors voilà, je suis en école d'ingénieur et on nous a demandé de créer un mini jeu vidéo. Seulement j'ai un petit problème ! En effet, lorsque je compile avec un make, par d'erreur de compilation mais lorsque j'exécute, ça me met ça:
cptpingu
Messages postés3837Date d'inscriptiondimanche 12 décembre 2004StatutModérateurDernière intervention28 mars 2023124 Modifié par cptpingu le 7/02/2017 à 13:54
Bonjour.
J'ai édité ton message pour virer les 10km de codes inutiles. Quand tu postes, mets du code *ciblé* et pas tes 12 000 lignes...
L'extrait que tu as mis ne pouvait pas aider :(.
Tout d'abord, pour trouver ce qui ne va pas, il faut commencer par avoir les bons réflexes:
Compile ton code en mode debug (tu dois avoir une règle "make debug", si ce n'est pas le cas, c'est à faire immédiatement !). La règle suppose que tu mets un -g, et pas d'optimisation (-O0). Si tu mets un -g et une optimisation, ça ne sert à rien...
Vu que ton code sera compilé en -g, tu vas pouvoir le débugger via gdb. Donc tu lances ton binaire avec gdb et tu attends qu'il plante.
Une fois ton code planté, tu tapes "bt", et là, tu vas avoir une "stack trace", qui va te dire exactement ou ton code plante (et à quelle ligne).
Au vu de l'erreur, il est clair qu'une exception non "catchée" est levée. Cette exception est lancée par la classe std::string quand on essaie de l'initialiser avec 0. Ça sent l'erreur d'initialisation d'un std::string quelque part dans ton code. Généralement, c'est de la forme: std::string toto(ma_var) ou std::string toto = ma_var, avec ma_var qui vaut le nombre 0 (ou NULL, c'est pareil).
Attention, OpenGL sous VirtualBox, j'en ai déjà fait, et ça ne se passait pas toujours très bien... J'ai déjà eu des soucis de mouvements de souris et de caméra que je n'avais pas sur un "vrai" OS (c-à-d pas virtualisé). Peut-être que les versions récentes de VirtualBox ont corrigé cela... Mais je t'invite à bien tester ton code sur un OS non virtualisé (Linux, ou Windows).