Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.

Forum Casio - Autres questions


Index du Forum » Autres questions » [Aide SDK] Les erreurs de compilation
Pierrotll Hors ligne Ancien administrateur Points: 5488 Défis: 41 Message

[Aide SDK] Les erreurs de compilation

Posté le 15/05/2011 00:10

Suite aux nombreuses demande d'aide que je reçois concernant des messages d'erreur lors de compilation avec le SDK, je décide de créer ce topic qui aura pour but de recenser tous les messages d'erreur, de les expliquer, et de donner leur solution.

Premièrement, qu'est ce qu'une erreur de compilation ?

Ici, ce sont les 4 lignes qui commencent par le chemin de mon fichier source contenant les erreurs (Z:\home\pierre\a\a.c) suivi du numéro de la ligne contenant l'erreur.

Liste des erreurs

Illegal token ''<mot>''
Description : Une erreur de syntaxe a été rencontrée avant <mot> (un point virgule manquant, une parenthèse en trop ...)
Solution : Arrêter de coder avec les pieds.

Undeclared name ''<nom>''
Description : Une variable est utilisée sans avoir été déclarée au préalable.
Solution : Déclarer la variable au début de la fonction.

Cannot convert parameter ''X''
Description : Le paramètre n°X envoyé à la fonction n'est pas du bon type, et ne peut pas être converti.
Solution : Vérifier quel type de variable demande la fonction, et lui envoyer une variable du bon type.

Illegal initializer type
Description : Une variable est initialisée avec un type incorrecte (exemple, un entier initialisé avec une chaîne de caractère)
Solution : Initialiser la variable avec une valeur CONSTANTE correcte.
Le compilateur Renesas utilisé par le SDK respecte la norme C89, qui spécifie qu'une variable doit être initialisée avec une valeur constante, et non une valeur de retour de fonction, ou un paramètre de la fonction.

Multiple variable declarations
Description : Une variable a déjà le même nom et la même portée que celle déclarée à la ligne de l'erreur.
(Deux variables peuvent avoir le même nom si elles n'ont pas la même portée)
Solution : Nommer la variable différemment.

Type not compatible for ''=''
Description : L'affectation d'une valeur à une variable a échouée car la valeur n'est pas d'un type compatible avec celui de la variable.
Solution : Si la valeur affectée est un retour de fonction, vérifier quel type de variable retourne la fonction.

Modifiable lvalue required for ''=''
Description : Un élément non modifiable (comme une fonction où une constante) est suivi d'un signe égal.
Solution : Seule les variables peuvent se voir affecter une valeur avec ''=''.

Index not integer
Description : utilisation d'un float ou d'un double dans l'index d'une case de tableau.
Solution : Caster en int, tableau[double] devient tableau[(int)double]

Number of parameters mismatch
Description : Trop ou pas assez de paramètres sont envoyés à la fonction.
Solution : Regarder ce que demande la fonction, et le respecter.

Undefined external symbol ''_<nom de fonction>''
Description : Une fonction est appelée, mais son implémentation n'a pas été compilée.
Solution : Vérifier l'orthographe du nom, vérifier si le fichier contenant la fonction est bien dans la fenêtre ''Files in project''. Si tout ça est bon, essayez d'éditer le fichier contenant l'implémentation de la fonction (ajouter un espace, le supprimer, sauvegarder), ça permettra au compilateur de re-compiler le fichier.

couldn't open ''<nom de fichier>''
Description : Un fichier inclu avec #include n'existe pas.
Solution : Lors de l'inclusion d'un fichier, il faut donner son chemin relatif depuis le fichier contenant la directive #include

Empty source program
Description : Le fichier source est vide, et aucun compilateur n'aime ça.

Cannot open source file ''<nom de fichier>''
Description : Le fichier source présent dans la fenêtre ''Files in project'' du SDK n'existe pas.

Unrecognized preprocessing directive
Description : Une directive de préprocesseur (lignes commençant pas #) n'est pas correctement orthographiée.

Illegal preprocessor syntax
Description : Erreur de syntaxe dans une directive de préprocesseur.

Expected a file name
Description : Un nom de fichier est attendu (généralement une erreur de syntaxe dans une directive include)

Expected an identifier
Description : Un identifiant est attendu (généralement une erreur de syntaxe dans une directive define ou ifdef)

Invalid parameter specified in option "input" : ""C:\Program Files (x86)\CASIO\fx-9860G SDK\OS\FX\lib\setup.obj""
Description : Ne jamais installer le SDK dans un dossier dont le chemin comporte des parenthèses ! Mettez-le dans C:\Programmes\CASIO par exemple.

Cette liste est incomplète, si vous rencontrez d'autres erreurs, vous pouvez les poster ici, elles seront ajoutées.

Voici une liste en anglais de toutes les erreurs possibles et imaginables. Cela ne vous donne pas forcément une bonne solution, mais ça peut vous aiguiller sur une piste


Dernière modification : 26/09/2013 (Dark Storm)

Fichier joint


Précédente 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ··· 20 ··· 24, 25, 26 Suivante
Pierrotll Hors ligne Ancien administrateur Points: 5488 Défis: 41 Message

Citer : Posté le 20/09/2012 21:34 | #


Une image de 107*36 pixel ça fait un bitmap de 504 octets. TileCreator a peut-être un problème pour gérer les largeurs non multiples de 8.

@Pigeonv: Je suis d'accord. Ce topic sert juste à parler des erreurs de compilations normalement, mais bon, quand une question y est posée, autant y répondre.
Javierxd Hors ligne Membre Points: 1899 Défis: 13 Message

Citer : Posté le 20/09/2012 22:22 | #


Pierrotll a écrit :
TileCreator a peut-être un problème pour gérer les largeurs non multiples de 8.

Peut être... quand j'avais collé le code, je m'étais rendu compte qu'il y avait des erreurs dans certains valeurs... J'essaierai avec une largeur multiple de 8.

EDIT: non, ça change rien. Si je réussis pas à le faire marcher, j'essaierai de coder le bmp à la main (je vais souffrir, je le sens )
Calculatrices: g35+usb modifiée, PRIZM

My program is not working, I have no idea why.
My program is working, I have no idea why.

Programmes
Cliquer pour enrouler
Limachi Hors ligne Youtuber Points: 2798 Défis: 67 Message

Citer : Posté le 23/09/2012 01:40 | # | Fichier joint


Javier, je vais t'éviter de souffrir pour rien:
Le code de ta bitmap
Merci qui

unsigned char Portal[]=
{0x00, 0x00, 0xE4, 0xAB, 0xB2, 0xB0, 0x19, 0x22, 0xE6, 0x00, 0x00, 0x00, 0x00, 0x4A, 0xAA, 0x2A, 0xA8, 0x22, 0xB6, 0x88, 0x00, 0x00, 0x00, 0x10, 0x4E, 0xAB, 0x31, 0x28, 0x2B, 0xAA, 0xC4, 0x10, 0x00, 0x00, 0x10, 0x4A, 0xAA, 0x2A, 0xA8, 0x2A, 0xA2, 0x82, 0x10, 0x00, 0x00, 0x10, 0xCA, 0x4B, 0xAA, 0xB0, 0x12, 0xA2, 0xEC, 0x10, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0xE0, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0xF0, 0x03, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0xF0, 0x07, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0xF0, 0x0E, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0xF0, 0x1C, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0xE0, 0x18, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x10, 0x11, 0xE0, 0x1E, 0x0F, 0x07, 0xF8, 0x78, 0x60, 0x1F, 0x00, 0x00, 0x11, 0xF8, 0x3F, 0x0F, 0xC7, 0xF8, 0x78, 0x60, 0x1F, 0x80, 0x00, 0x11, 0x98, 0x33, 0x0C, 0xC0, 0xC0, 0xCC, 0x60, 0x1F, 0x80, 0x00, 0x31, 0x8C, 0x61, 0x8C, 0x60, 0xC0, 0xCC, 0x60, 0x1F, 0xC0, 0x00, 0x71, 0x8C, 0xE1, 0xCC, 0x60, 0xC0, 0xCC, 0x60, 0x1E, 0xC0, 0x00, 0xF1, 0x98, 0xC0, 0xCC, 0xC0, 0xC0, 0xFC, 0x60, 0x1C, 0xE0, 0x00, 0xF1, 0xF8, 0xC0, 0xCF, 0xC0, 0xC1, 0xFE, 0x60, 0x18, 0x70, 0x01, 0xF1, 0xE0, 0xE1, 0xCF, 0x80, 0xC1, 0x86, 0x60, 0x10, 0x3C, 0x01, 0xF1, 0x80, 0x61, 0x8D, 0xC0, 0xC1, 0x86, 0x60, 0x18, 0x0E, 0x03, 0xB1, 0x80, 0x33, 0x0C, 0xE0, 0xC1, 0x86, 0x60, 0x1C, 0x00, 0xC7, 0x11, 0x80, 0x3F, 0x0C, 0x60, 0xC1, 0x86, 0x70, 0x10, 0x00};

C'est du 88*23 (j'ai ajouté une bande blanche a gauche pour faire un multiple de 8 ) mais normalement tu peux demander un affichage 87*23 (en tout cas, sa marche avec MonochromeLib).

Ps: l'image que j'ai codé est celle en fichier joint, j’espère que tu la voulais comme sa.
Mes Programmes
Cliquer pour enrouler
-en basic: un programme nommé PICFMLIM convertissant une picture en code basic.
-en C:
-Un pong.
-Un projet en pause. Je compte le reprendre de temps en temps: Summer Cursed


-mon tuto sur les Str


Mes calto: G25+, G75
Mon minecraft en dévelopement


Projets et Programmes que je soutiens (sur une idée de Marmotti)
Cliquer pour enrouler
-Pokemon Jade de Dodormeur
-Portal2D de JavierXD
-CalCraft de Wime
-GeekBros du groupe GeekBrothers (Eiyeron,Siapran,KevKevVTT,Adbook,LIMachi)
Pierrotll Hors ligne Ancien administrateur Points: 5488 Défis: 41 Message

Citer : Posté le 23/09/2012 09:50 | #


Javier, il y a d'autres logiciels pour encoder les bitmaps.
Dark storm Hors ligne Labélisateur Points: 11571 Défis: 176 Message

Citer : Posté le 23/09/2012 11:01 | #


C'est bizarre
Chez moi, Tiles Creator fonctionne parfaitement bien...
C'est juste Monochrome Lib qui me créer des EBR, mais c'est une autre histoire...
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Javierxd Hors ligne Membre Points: 1899 Défis: 13 Message

Citer : Posté le 23/09/2012 11:40 | #


@Limachi: merci, mais il manque la partie d'en bas qui à cause du bug ne s'affichais pas, donc je vais pas l'utiliser, dsl
@Pierrotll: Pourrais tu me donner un lien stp?
Calculatrices: g35+usb modifiée, PRIZM

My program is not working, I have no idea why.
My program is working, I have no idea why.

Programmes
Cliquer pour enrouler
Dark storm Hors ligne Labélisateur Points: 11571 Défis: 176 Message

Citer : Posté le 23/09/2012 11:43 | #


sinon, si c'est pour faire un fond d'écran, fait comme ça:

unsigned char Portal[] = { bitmap généré par Tiles Créator };

memcpy(ML_vram_adress(), Portal, 1024);

Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Nitrosax Hors ligne Ancien rédacteur Points: 1061 Défis: 17 Message

Citer : Posté le 23/09/2012 11:45 | #


Personnellement, j'utilise Flash100 pour coder mes bitmaps.

Le fonctionnement est simple et instinctif.
Quand tu l’exécutes, il faut aller dans "outils", "sprite maker" je crois.

Attention, les bitmaps doivent avoir pour longueur des multiples de 8 pour être bien codés.
Pierrotll Hors ligne Ancien administrateur Points: 5488 Défis: 41 Message

Citer : Posté le 23/09/2012 13:23 | #


Tout à la fin de la documentation de MonochromeLib je donne 3 liens, Tiles Creator, Sprite Maker, FindSpritesInBitmap.
Javierxd Hors ligne Membre Points: 1899 Défis: 13 Message

Citer : Posté le 23/09/2012 14:46 | #


Mais flash 100 et Sprite Maker sont pour G100, ça marche aussi pour les fx?
Calculatrices: g35+usb modifiée, PRIZM

My program is not working, I have no idea why.
My program is working, I have no idea why.

Programmes
Cliquer pour enrouler
Nitrosax Hors ligne Ancien rédacteur Points: 1061 Défis: 17 Message

Citer : Posté le 24/09/2012 17:47 | #


@Javier : Oui

@PierrotLL : J'ai déjà testé ton programme. Il fonctionne bien pour l'exemple fourni. Pour le reste, rien à faire, j'ai tout essayé, le code généré est tout simplement inexistant.
Louloux Hors ligne Ancien administrateur Points: 7035 Défis: 61 Message

Citer : Posté le 24/09/2012 21:55 | #


Javierxd a écrit :

Mais flash 100 et Sprite Maker sont pour G100, ça marche aussi pour les fx?

J'ai fait angry birds, starwars 3D, astrobot et souris avec
Pierrotll Hors ligne Ancien administrateur Points: 5488 Défis: 41 Message

Citer : Posté le 24/09/2012 23:30 | #


@Nitrosax : Les instructions sont détaillées dans le message, il faut un bitmap 24 bits, et les sprites doivent être entourés d'un rectangle noir avec une marge intérieure et extérieure d'1px, comme dans l'exemple fourni. Plusieurs personnes l'utilisent sans problème.
Nitrosax Hors ligne Ancien rédacteur Points: 1061 Défis: 17 Message

Citer : Posté le 25/09/2012 13:13 | #


Ah d'accord.
J'avais oublié la deuxième condition (marge).

Javierxd Hors ligne Membre Points: 1899 Défis: 13 Message

Citer : Posté le 25/09/2012 23:17 | # | Fichier joint


J'ai fait l'image avec flash 100. Maintenant elle a bien 504 octets, mais elle est encore déformée

Déclaration
Cliquer pour enrouler
unsigned char principal[] = {
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,74,14,43,187,146,1,96,46,0,0,0,0,0,0,
170,4,170,162,43,130,128,104,0,0,0,0,1,0,234,4,
18,179,186,130,64,172,0,8,0,0,1,0,170,4,170,162,
170,130,32,40,0,8,0,0,1,0,164,12,171,186,42,1,
192,46,0,8,0,0,1,0,0,0,0,0,0,0,0,0,
240,8,0,0,1,0,0,0,0,0,0,0,0,0,248,9,
0,0,49,0,0,0,0,0,0,0,0,0,248,9,0,0,
125,0,0,0,0,0,0,0,0,0,248,9,0,0,239,0,
0,0,0,0,0,0,0,0,248,9,0,0,199,1,0,0,
0,0,0,0,0,0,240,8,0,0,131,1,0,0,0,0,
0,0,0,0,0,14,0,0,1,1,1,30,240,224,135,127,
0,134,128,15,0,0,1,0,131,31,252,240,135,127,0,134,
192,15,0,0,1,0,131,25,204,48,12,12,0,198,192,15,
0,0,3,0,198,24,198,24,12,12,0,198,224,15,0,0,
7,0,204,24,198,12,12,12,0,198,96,15,0,0,15,0,
140,25,204,12,15,12,0,198,112,14,0,0,15,0,140,31,
252,12,31,12,0,230,56,12,0,0,31,0,12,30,248,12,
24,12,0,102,30,8,0,0,31,0,6,24,220,24,24,12,
0,102,7,12,0,0,59,0,3,24,206,48,24,12,0,102,
0,14,0,0,113,12,3,24,198,240,24,12,240,103,0,15,
0,0,225,14,1,24,198,224,24,12,240,103,128,11,0,0,
193,7,0,0,0,0,0,0,0,0,128,9,0,0,1,3,
0,0,124,0,0,120,0,0,128,11,0,0,1,0,0,0,
254,0,0,124,0,0,0,15,0,0,1,0,0,0,198,0,
0,102,0,0,0,14,0,0,1,0,0,0,198,0,0,99,
0,0,0,12,0,0,1,0,0,0,14,0,0,99,0,0,
0,8,0,0,1,0,0,0,28,0,0,99,0,0,0,8,
0,0,1,0,0,0,56,0,0,99,0,0,0,8,0,0,
1,0,0,0,112,0,0,102,0,0,0,8,0,0,1,0,
0,0,254,0,0,124,0,0,0,8,0,0,0,0,0,0,
254,0,0,120,0,0,0,0 };

Calculatrices: g35+usb modifiée, PRIZM

My program is not working, I have no idea why.
My program is working, I have no idea why.

Programmes
Cliquer pour enrouler
Pierrotll Hors ligne Ancien administrateur Points: 5488 Défis: 41 Message

Citer : Posté le 26/09/2012 01:40 | #


Ce code affiche bien cette image là, encore une fois l'encodage n'est pas bon.

Ajouté le 26/09/2012 à 02:17 :
J'ai testé rapidement Sprite Maker, en mode Normal b/b on obtient le bon codage dans le dernier tableau, mais ça n'a pas l'air de fonctionner avec les largeurs non multiples de 8.
Nitrosax Hors ligne Ancien rédacteur Points: 1061 Défis: 17 Message

Citer : Posté le 26/09/2012 12:02 | #


Nitrosax a écrit :
Attention, les bitmaps doivent avoir pour longueur des multiples de 8 pour être bien codés.

Louloux Hors ligne Ancien administrateur Points: 7035 Défis: 61 Message

Citer : Posté le 26/09/2012 14:04 | #


J'ai testé rapidement Sprite Maker, en mode Normal b/b on obtient le bon codage dans le dernier tableau, mais ça n'a pas l'air de fonctionner avec les largeurs non multiples de 8. a écrit :

Il faut dessiner une image avec la bonne largeur, mettre la largeur multiple de 8 au-dessus, et traiter le bitmap comme avec sa vraie largeur.
Getkey Hors ligne Membre Points: 232 Défis: 0 Message

Citer : Posté le 26/09/2012 17:40 | #


J'ai droit à l'erreur
** L2310 (E) Undefined external symbol "_ML_display_vram" referenced in "C:\Users\Getkey\Desktop\SDK\Fallen_Astronaut\Debug\Astrofal.obj"


J'ai pourtant supprimé debug, rebuild all, ajouté-suprimé un espace...
Getkey est en cours de chargement. Veuillez patienter...


Mes jeux en pause...
Cliquer pour enrouler
Dodormeur Hors ligne Ancien rédacteur Points: 3965 Défis: 84 Message

Citer : Posté le 26/09/2012 17:41 | #


t'a bien decommenté la fonction ?
Pokemon !!!!!! => pokemon stadium/battle

mes meilleurs jeux
Cliquer pour enrouler
un jeu avec des niveaux de gris mais compatible SH4 (mais en monochrome pour les SH4) => bomberman
envie de plonger dans la mer pour ramasser des tresors? => ballon sea
envie de sauver l'univers dans un jeu avec une longue durée de vie? => saviors of the future
un add-in addictif avec plein de secret et de trophées => evasion survival
un shmup bien dur et sadique => saviors 2

projets
Cliquer pour enrouler

pokemon
Cliquer pour enrouler



encodage des données de combat (sprite, attaques et nom)
   100%

systeme de combat
   100%

encodage des données de pokemon (niveau d'apprentisage et evolution)
   100%


moteur de la carte
   50%

level design
   1%

finition de pokemon jade
   42%

merci a tout le monde pour son soutien


projets que je soutiens
Cliquer pour enrouler
minecraft de limachi
zelda prizm de smashmaster (en esperant qu'il puisse le finir)
les tests de marmotti
un RPG de dark storm (dont je connais le nom, mais pas vous ) Arcuz !
Getkey Hors ligne Membre Points: 232 Défis: 0 Message

Citer : Posté le 26/09/2012 17:43 | #


Oui, bien sur !
Getkey est en cours de chargement. Veuillez patienter...


Mes jeux en pause...
Cliquer pour enrouler
Précédente 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ··· 20 ··· 24, 25, 26 Suivante

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v42 © créé par Neuronix et Muelsaco 2004 - 2022 | Il y a 48 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd