Forum du jeu de rôle, stratégie et gestion: Vendetta
 
AccueilPortailGalerieFAQRechercherS'enregistrerMembresGroupesConnexion

Partagez | 
 

 Erreurs de compilation et questions sur le code de Yoha

Aller en bas 
AuteurMessage
Hamdryn
Commerçant
Commerçant


Masculin
Nombre de messages : 219
Date d'inscription : 18/12/2011

MessageSujet: Erreurs de compilation et questions sur le code de Yoha   Dim 12 Avr 2015 - 20:10

Nouveau sujet pour ceux qui veulent se lancer dans la compilation ou la compréhension du code de Yoha.

Compilation: Le code compile sur la machine de Yoha, mais pas forcément sur les autres. En cas d'erreurs, postez le morceau de code concerné, indiquez les caractéristiques du système d'exploitation, et peut-être les options de compilation aussi.

Compréhension: Le code n'est quasiment pas commenté, et peut-donc être difficile d'accès. Je pense que si quelqu'un a des questions à poser la dessus, c'est là qu'il faudra poster le morceau de code encore obscur.


Et je commence donc par l'erreur qui me travaille en ce moment: les erreurs en "_imp_"

Tout ce que je sais la-dessus vient de là:
http://forums.codeguru.com/.../Unable to connect MySQL database. Weird _imp_ problem

J'ai essayé de compiler sur Windows7 x64, en console et sur Code::Blocks. J'ai utilisé "make clean", puis "Clean" sur Code::Blocks avant de recompiler.
Ça semble concerner toutes les fonctions (Code::Blocks m'a affiché les cinquante premières et la console Windows les x dernières).

Le clean a marché sous Code::Blocks mais s'est terminé par "make (e=2): Le fichier est introuvable" dans la console. Ça a raté quoi.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
syll
Artisan
Artisan


Masculin
Nombre de messages : 65
Date d'inscription : 16/12/2013

MessageSujet: Re: Erreurs de compilation et questions sur le code de Yoha   Lun 13 Avr 2015 - 8:17

La console Windows c'est vraiment chiant pour ça. En fait c'est vraiment chiant tout court.

Il manque une partie de l'adresse que tu indiques, ça doit être ça :
http://forums.codeguru.com/showthread.php?500041-Unable-to-connect-MySQL-database-Weird-_imp_-problem

Ça ressemble à des bibliothèques qui ne seraient pas trouvées chez toi. Donc en premier il faut vérifier que tu as installé ce qui se trouve sur cette page : https://sinon.org/vendetta/wiki/Compiler ; à la section Windows dans ton cas. Le fait que ça fonctionne chez moi suggère qu'elles sont bien référencées dans le code mais qu'elles ne sont pas trouvées sur ton système (peut-être qu'elles ne sont pas au bon endroit ?).

Les messages indiquent sans doute ce qui manque, est-ce que tu peux les poster ici ? Les cinquante premiers messages fournis par ton environnement de développement c'est le plus intéressant je pense. Ou même les 10 premiers.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Hamdryn
Commerçant
Commerçant


Masculin
Nombre de messages : 219
Date d'inscription : 18/12/2011

MessageSujet: Re: Erreurs de compilation et questions sur le code de Yoha   Mar 14 Avr 2015 - 23:17

Voici les 50 premiers messages. C'est vrai qu'il y a un truc que j'avais pas remarqué, c'est que toutes les fonctions concernées commencent par "sf"... de là à dire que j'ai mal installé CSFML, il n'y a qu'un pas, que je franchirai volontiers la prochaine fois que je me pencherai dessus.
Je me suis peut-être gouré entre x32 et x64. Est-ce que MinGW32 compile du x64 ?

Je vois pas de différences entre les .dll, que j'ai mis dans le même dossier que le fichier projet Code::Blocks, et j'ai respecté le chemin relatif précisé pour les inclusions
Code:
#include <CSFML/*.h>

Attention, bloc de plus de 100 lignes:
 
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
syll
Artisan
Artisan


Masculin
Nombre de messages : 65
Date d'inscription : 16/12/2013

MessageSujet: Re: Erreurs de compilation et questions sur le code de Yoha   Mar 14 Avr 2015 - 23:38

Effectivement, on dirait que SFML ou CSFML n'est pas trouvée.

Aucune idée pour les versions 32/64 bits. À mon avis il vaudrait mieux faire des choix plus uniformes quand même : il se pourrait bien que mingw-32 soit un environnement 32 bits et qu'il ne supporte pas les bibliothèques 64 bits.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Hamdryn
Commerçant
Commerçant


Masculin
Nombre de messages : 219
Date d'inscription : 18/12/2011

MessageSujet: Re: Erreurs de compilation et questions sur le code de Yoha   Jeu 16 Avr 2015 - 12:43

J'ai essayé une configuration cohérente pour x64 et x32, et ça na pas marché...

Nouvelle piste: est-ce que c'est grave d'utiliser CSFML 2.2 au lieu de 2.1 ? J'avais pas bien lu le wiki, je pense...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
syll
Artisan
Artisan


Masculin
Nombre de messages : 65
Date d'inscription : 16/12/2013

MessageSujet: Re: Erreurs de compilation et questions sur le code de Yoha   Jeu 16 Avr 2015 - 13:08

Là je n'en ai aucune idée.

Chez moi (sous Linux) a priori il y a les versions 2.2.

Est-ce que tu as un moyen de faire des tests plus simple, sur un petit exemple, dans ton environnement MinGW ou CodeBlocks ? Créer un tout petit projet et voir si tu arrives à trouver une bibliothèque que tu places à tel ou tel endroit ? C'est la partie chiante avec les bibliothèques quand elles ne sont pas installées automatiquement au bon endroit : il faut être sûr de les avoir placées où il faut.

Pour plus de détails, je pense que tu peux aussi écrire directement à Yoha (son adresse se trouve dans les infos de git ; je ne sais pas quel outil tu utilises pour consulter l'historique du dépôt, mais là où se trouve le nom du développeur il y a son adresse en général).

Tiens-nous au courant.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Hamdryn
Commerçant
Commerçant


Masculin
Nombre de messages : 219
Date d'inscription : 18/12/2011

MessageSujet: Re: Erreurs de compilation et questions sur le code de Yoha   Lun 20 Avr 2015 - 18:03

Ça a compilé ! cheers

Ce sujet sur le forum d'OpenClassroom (ex-SiteDuZéro) m'a été très utile, puisqu'il m'a montré l'importance de cette page.

En fait, compiler avec la CSFML requérait quelques manips dont je ne soupçonnais pas l'existence. C'est-à-dire que c'est plus compliqué qu'avec la SDL présentée dans le cours du Site du Zéro, vu que Code::Blocks n'a pas vraiment de modèle de projet SFML. Il fallait donc modifier des paramètres dans "Project" -> "Build options...":

- Onglet "Compiler settings"
  - Dans le sous-onglet "#defines", il faut ajouter SFML_DYNAMIC pour pouvoir utiliser les DLL

- Onglet "Linker Settings"
  - Dans le tableau "Link libraries", ajouter dans l'ordre libcsfml-audio.a, puis *-graphics.a, puis *-window.a, et en dernier *-system.a.

- Onglet "Search directory"
  - Dans le sous-onglet "Compiler", il faut ajouter le chemin /include
  - Dans le sous-onglet "Linker", il faut ajouter le chemin /lib/gcc

Et enfin, mettre les .dll dans le dossier où sera situé l'exécutable, par défaut ".../Debug" dans Code::Blocks.

Et ainsi, j'ai pu compiler et découvrir la magnifique erreur "0xc000007b" juste avant le démarrage de l'application !
Je reviens dès que je l'aurais résolue Wink
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
syll
Artisan
Artisan


Masculin
Nombre de messages : 65
Date d'inscription : 16/12/2013

MessageSujet: Re: Erreurs de compilation et questions sur le code de Yoha   Lun 20 Avr 2015 - 18:13

\o/
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Hamdryn
Commerçant
Commerçant


Masculin
Nombre de messages : 219
Date d'inscription : 18/12/2011

MessageSujet: Re: Erreurs de compilation et questions sur le code de Yoha   Mar 21 Avr 2015 - 20:55

Mauvaise nouvelle, ça a l'air d'être une méchante erreur de DirectX. Je préfère de loin les erreurs de compilation.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
syll
Artisan
Artisan


Masculin
Nombre de messages : 65
Date d'inscription : 16/12/2013

MessageSujet: Re: Erreurs de compilation et questions sur le code de Yoha   Mar 21 Avr 2015 - 21:35

Ah... effectivement, c'est un problème. Par contre là je ne peux pas t'aider pour la maintenance Windows.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Hamdryn
Commerçant
Commerçant


Masculin
Nombre de messages : 219
Date d'inscription : 18/12/2011

MessageSujet: Re: Erreurs de compilation et questions sur le code de Yoha   Dim 26 Avr 2015 - 21:06

Bonne nouvelle ! J'étais parti sur une fausse piste avec DirectX: l'erreur était en réalité causée par une mauvaise installation des .dll (impossible de différencier les x64 des x32 aussi... ). J'ai tout bien mis en x32.

Du coup retour aux problèmes de compilation:

J'avais reçu ce message d'erreur

Code:
||=== vendetta, all ===|
obj\Debug\universe\universe.o:universe.c|          | undefined reference to `kindOf_projectile_init'|
obj\Debug\universe\universe.o:universe.c|          | undefined reference to `kindOf_projectile_sprite'|
obj\Debug\world\world.o:world.c|                      | undefined reference to `character_doRound'|
obj\Debug\world\world.o:world.c|                      | undefined reference to `projectile_doRound'|
||=== Build finished: 4 errors, 0 warnings ===|

J'ai donc neutralisé les portions en question, 3 boucles for contenant chacune une ou deux instructions, pas plus, en les transformant en commentaires.

Ça compile, ça s'exécute, mais ça dure qu'une seconde (j'ai choppé la dernière version du code source entre temps) C'est normal ? Je suppose que c'est un problème avec les boucles infinies ou les évènements, d'après le peu que je sais, mais je vois pas où modifier.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
syll
Artisan
Artisan


Masculin
Nombre de messages : 65
Date d'inscription : 16/12/2013

MessageSujet: Re: Erreurs de compilation et questions sur le code de Yoha   Dim 26 Avr 2015 - 21:56

Non, ce n'est pas normal. Chez moi le jeu se lance, un menu apparaît dans une fenêtre, je clique sur Jouer, je peux jouer (pendant plus d'un seconde).

Tu as bien refait un "make clean" ?

Le fait que le code compile chez moi m'inciterait à ne pas trop bidouiller le code chez toi. Je suppose que c'est plutôt correct. Tu ne devrais pas avoir à retirer des bouts de code avec des effets indéfinis, on ne sait pas trop ce que ça va faire.

Là on dirait des problèmes dans les inclusions, je ne sais pas trop pourquoi je n'ai pas le problème et toi oui.

Par exemple la fonction kindOf_projectile_init est déclarée dans projectile.h. projectile.h n'est pas inclus dans universe.c mais par contre il est bien inclus dans universe.h ; je suppose que ça suffit, mais je ne suis pas un grand expert en C. Essaie d'ajouter "#include "projectile.h"" au début de universe.c. Ça ne fait pas de mal et peut-être que ça résoudra la première des quatre erreurs (les autres ressemblent) ?

Sinon le code que tu as retiré pour que ça compile peut donner une indication sur ce qui ne va pas. Par exemple pour la première erreur tu as modifié les appels à la fonction dans universe.c ? Si c'est ça, le fait d'ajouter l'inclusion indiquée plus haut dans universe.c devrait résoudre le problème. J'espère...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Hamdryn
Commerçant
Commerçant


Masculin
Nombre de messages : 219
Date d'inscription : 18/12/2011

MessageSujet: Re: Erreurs de compilation et questions sur le code de Yoha   Dim 26 Avr 2015 - 23:42

En effet, j'avais fait une mauvaise manip: lorsque j'ai téléchargé la nouvelle version, pour pas avoir à reconfigurer le projet pour qu'il compile, j'avais copié le fichier projet de la version plus ancienne. Ce qui fait que plein de nouveaux fichiers n'étaient plus dans le projet.

Mais ça réglé, l'exécution est toujours aussi rapide. Une fenêtre console et un cadre blanc que je suppose être le menu apparaissent très brièvement avant que le programme ne finisse, avec le statut 1 (du coup, il a pas fini par le "return 0").

Je vais essayer des chercher tous les exit susceptibles d'avoir été appelés dans le peu de temps d'exécution...


Dernière édition par Hamdryn le Dim 26 Avr 2015 - 23:53, édité 2 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
syll
Artisan
Artisan


Masculin
Nombre de messages : 65
Date d'inscription : 16/12/2013

MessageSujet: Re: Erreurs de compilation et questions sur le code de Yoha   Dim 26 Avr 2015 - 23:50

En principe, autre chose que 0 c'est une erreur. Le programme a peut-être juste planté. S'il ne va pas très loin, il n'a peut-être pas trouvé ses données ? Aucune indication dans la console ? Sinon tu peux ajouter des traces dans le programmes à afficher dans la console (ou utiliser les points d'arrêts du débogueur de ton environnement de développement) pour savoir jusqu'où il va et où il plante.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Hamdryn
Commerçant
Commerçant


Masculin
Nombre de messages : 219
Date d'inscription : 18/12/2011

MessageSujet: Re: Erreurs de compilation et questions sur le code de Yoha   Dim 26 Avr 2015 - 23:53

Trouvé ! Le menu réclamait la police DejaVuSans.ttf, dont le chemin relatif était mal indiqué. Le jeu est lancé...

En effet, j'ai mis une trace: un 2 à la place du un dans chaque exit que j'examinais (successivement bien sûr...)
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
syll
Artisan
Artisan


Masculin
Nombre de messages : 65
Date d'inscription : 16/12/2013

MessageSujet: Re: Erreurs de compilation et questions sur le code de Yoha   Dim 26 Avr 2015 - 23:59

C'est bon, tout marche ?

Si c'est le cas, n'hésite pas à envoyer la liste des modifications réellement nécessaires par courrier électronique à Yoha, ça pourra toujours servir. "git diff" ou un outil graphique t'aideront.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Hamdryn
Commerçant
Commerçant


Masculin
Nombre de messages : 219
Date d'inscription : 18/12/2011

MessageSujet: Re: Erreurs de compilation et questions sur le code de Yoha   Lun 27 Avr 2015 - 0:01

Ouaip, tout marche.

Réellement nécessaire ça veut dire "permet à une fonctionnalité déjà implémentée ou non de fonctionner comme prévu" ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
syll
Artisan
Artisan


Masculin
Nombre de messages : 65
Date d'inscription : 16/12/2013

MessageSujet: Re: Erreurs de compilation et questions sur le code de Yoha   Lun 27 Avr 2015 - 0:10

Oui Smile , je voulais juste dire de faire attention à séparer ce que tu as pu modifier "pour rien" au cours de tes essais de ce qui a réellement servi à faire avancer la choucroute.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: Erreurs de compilation et questions sur le code de Yoha   

Revenir en haut Aller en bas
 
Erreurs de compilation et questions sur le code de Yoha
Revenir en haut 
Page 1 sur 1

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
¤ Vendetta ¤ :: Autour de Vendetta :: Le jeu :: Développement-
Sauter vers: