[PART. RESOLU] VS 2017 / Visual Micro erreurs lors de l'intégration de la lib Gamebuino

Crystal

6 years ago

EDIT : j'ai partiellement répondu à la question, voir un peu plus bas.


Bonjour, 

J'utilise Visual Studio 2017 (CE), avec le plugin Visual Micro. Cela marche parfaitement, du moins la compilation fonctionne sans erreur, je n'ai pas de soucis de ce côté là. En revanche, quand on fait l'intégration du fichier Gamebuino-Meta.h il y a des erreurs cachées. Et uniquement qu'on fait l'include de ce fichier.

Ces erreurs ne sont pas visibles par défaut sous l'IDE il faut ouvrir la fenêtre "Liste d'erreurs" pour les voir. Alors cela compile normalement mais du coup je me demande si c'est bien propre car on a quand même ces erreurs.

Pour vous démontrer tout cela, j'ai fait une petite vidéo que je mets ici pour que vous puissiez voir d'une part, le fait que cela compile parfaitement (bon je vais pas jusqu'à montrer le .bin mais croyez moi il y est bien et il marche :) ) Et après je vous montrer comment voir ces erreurs.

Ce test a été effectué sur 3 machines différentes et sur les 3 machines on a les mêmes erreurs.

Voici le lien de la vidéo partagée : https://my.pcloud.com/publink/show?code=XZS2Be7ZPrcUujUsRHyvxu3B6s3v0FEjskKy


Quelqu'un a t'il une idée de savoir si ces erreurs sont génantes ou non ? Et d'où cela pourrait provenir ?

Merci d'avance !

Aurélien Rodot

NEW 6 years ago

L'erreur vient de là https://github.com/Gamebuino/Gamebuino-META/blob/5a49653cb2a84745a951cb1b78cd25194c213c26/src/Gamebuino-Meta.h#L28

#ifndef __SKETCH_NAME__
#error "Please compile using the Gamebuino Meta board!"
#endif

Lorsque tu compiles sans avoir sélectionné la board Gamebuino Meta comme cible de compilation. SKETCH_NAME est défini par l'IDE arduino comme le nom du fichier, et avec la gamebuino on le passe lors de la compilation dans arduino1.8.5-PortableWin\portable\packages\gamebuino\hardware\samd\1.2.1\platform.txt

compiler.c.flags=-mcpu={build.mcu} -mthumb -c -g -Os {compiler.warning_flags} -std=gnu11 -ffunction-sections -fdata-sections -nostdlib --param max-inline-insns-single=500 -MMD -D__SKETCH_NAME__="""{build.project_name}"""

C'est une variable qui est necéssaire pour que le jeu connaisse son propre nom, on l'utilise pour définir le nom du dossier où enregistrer les captures, gérer les fichiers de sauvegarde etc.

Crystal

NEW 6 years ago

Merci, mais tu fais cela à partir d' où ? car moi dans l'ide j'ai mis Gamebuino partout y compris pour la Board, alors j'ai du mal à comprendre. Tu la définis où cette variable dans visual studio et visual micro ?

Aurélien Rodot

NEW 6 years ago

C'est une variable qui est définie par l'IDE Arduino et qui est égale au nom du fichier. A toi de voir comment avec visual tu peux récupérer le nom du fichier et faire un #define avec, ou bien tu le fais à la main pour chaque jeu.

jicehel

NEW 6 years ago

Donc tu fais #define SKETCH_NAME NomDuRépertoire.ino  avec le nom du prog = au nom du répertoire où il se trouve ou tu fais juste #define SKETCH_NAME NomDuRépertoire (sans le .ino) ?

Aurélien Rodot

6 years ago

Faut tester et voir ce qui marche, les voies du linker sont impénétrables

Aurélien Rodot

NEW 6 years ago

jicehel jicehel

Faut tester et voir ce qui marche, les voies du linker sont impénétrables

Crystal

NEW 6 years ago

Je testerai sur le portable car sur le home PC j'ai un autre soucis, le test ne sera pas viable. Merci !

Crystal

NEW 6 years ago

Perso j'ai pas réussi je peux mettre n'importe quel define cela ne change rien, il doit y avoir un truc en rapport effectivement mais là je sèche.

Crystal

NEW 6 years ago

Bonjour à tous, 

Bon j'ai fait pleins de recherches et en fait je pense qu'il n'y a pas de solution particulière je m'explique : 

1°) Concernant l'erreur qui dit qu'il faut utiliser une board Gamebuino, c'est un autre pb comme le mentionnait Aurélien, celui-ci doit pouvoir se corriger il suffit de trouver comment mais bon c'est pas très grave.

2°) Pour l'erreur qui dit qu'il faut se mettre en sdt c++11, dans la version 2017 de VS, la solution consiste à installer le module Clang2 et passer le projet sur cet ensemble d'outils (dans les propriétés du projet).

3°) Pour les autres erreurs, en fait il ne s'agit pas d'erreur de "Buid" mais d'erreur "Intellisense" (encore une fois...). J'ai fait énormément de recherche notamment sur Visual Micro et il s'avère que sur VS ce genre d'erreurs n'est pas nouveau (même sous Arduino). Cela ne gène pas la compilation et en gros la solution donnée à chaque fois c'est tout simplement demander à ce que les erreurs intellisense soient cachées.

Certes, les erreurs disparaissent mais à mon avis ce n'est que fuir le problème, car au final, on le voit bien dans le projet, on a 0 coloration syntaxique en ce qui concerne Gamebuino, ce qui n'aide pas à la lisibilité du code (du moins pour moi). De plus sur le site officiel de VM, ils en parlent des erreurs Intellisense donc c'est un pb récalcitrant qui n'est pas apparemment spécifique à Gamebuino.

Donc voilà. A la rigueur si j'ai un peu de temps, je réinstallerai le plugin Visual Micro sous 2017 et je ferais un topic sur le forum officiel de VM pour montrer les erreurs Intellisense avec Gamebuino, c'est ce que demandent les développeurs de VM pour appliquer des corrections, alors ca veut pas dire que ce sera corrigé mais bon on peut toujours tenter.

En attendant, si vous souhaitez un environnement type VS pour développer sous Arduino et/ou Gamebuino, je peux vous conseiller Atmel Studio qui est basé sur VS 2015 et qui lui fonctionne out in a box avec le plugin Visual Micro (je ferais surement un tuto pour montrer comment l'installer en vidéo quand j'aurais débuté mes vidéos sur Gamebuino). D'autant plus que Atmel est un ide prévu à la base pour développeur sur des microships ^^

Bon code les amis !