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 ··· 10, 11, 12, 13, 14, 15, 16 ··· 20 ··· 24, 25, 26 Suivante
Ninestars Hors ligne Membre Points: 2451 Défis: 24 Message

Citer : Posté le 16/08/2013 17:26 | #


Bha c'est par ça que j'avais commencé mais j'ai :
sdk a écrit :
Undeclared name "NULL"

:/
Dodormeur Hors ligne Ancien rédacteur Points: 3965 Défis: 84 Message

Citer : Posté le 16/08/2013 17:59 | #


ou alors tu ne l'initialise pas, tu n'est pas obligé vu que tu le defini juste apres
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 !
Dark storm Hors ligne Labélisateur Points: 11571 Défis: 176 Message

Citer : Posté le 16/08/2013 18:06 | #


La solution de dodormeur arche à tout les coups, même si c'est pas très propre

Ajouté le 31/08/2013 à 14:25 :
je crois que celle là, personne ne l'a eu

C3301 (F) Cannot close internal file


Ajouté le 31/08/2013 à 14:31 :
Une idée d'où ça vient ?
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Ziqumu Hors ligne Membre d'honneur Points: 3055 Défis: 9 Message

Citer : Posté le 31/08/2013 14:36 | #


redémarre l'ordi ?
Dark storm Hors ligne Labélisateur Points: 11571 Défis: 176 Message

Citer : Posté le 31/08/2013 14:39 | #


c'est ce que je vais faire. Tu peux ajouter ce lien dans le topic, il contient toutes les erreurs possibles (mais en anglais)
http://documentation.renesas.com/doc/products/tool/doc/r20ut0736ej0100_qser.pdf

Ajouté le 31/08/2013 à 15:25 :

J'ai redémarré l'ordi, réinstallé le sdk, rien à faire !
Et la doc de Renesas n'est pas si précise que ça...

Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Ninestars Hors ligne Membre Points: 2451 Défis: 24 Message

Citer : Posté le 31/08/2013 15:59 | #


Essaye avec un autre projet, va voir ça vient de ton projet. Sinon retire ce que tu viens juste de mettre. Sinon supprime le fichier Debug de ton projet.
Dark storm Hors ligne Labélisateur Points: 11571 Défis: 176 Message

Citer : Posté le 31/08/2013 16:13 | #


J'ai mis mon projet sur le disque dur (il était sur une clé USB), et ça marche.
C'est bizarre, je code toujours sur disque externe (DD ou clé), et je n'ai jamais eu de problème jusque là...
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Theprog Hors ligne Membre Points: 1447 Défis: 20 Message

Citer : Posté le 24/10/2013 13:22 | #


Salut j'ai un soucis
J'ai repris un morceau du code du Snake de Musalco ou il explique comment utiliser sprintf mais ma déclaration de variable ne marche pas ...
Bon après j'ai pas que ça comme erreur mais elles sont plus simples a résoudre je pense

Edit: Correction de certains problèmes mais je comprends pas les erreurs au niveau des Print

Le code
Cliquer pour enrouler

#include "fxlib.h"
#include "stdlib.h"
#include "stdio.h"

int nombre,proposition,difficult,nbrcoup,tp;
char affichage[21]; //servira pour sprintf
unsigned int key;

int boucle(){
    nbrcoup=0;
    do{
        nbrcoup++;
        proposition=input(affichage,"Combien ?");
    }while(proposition!=nombre);
}


int AddIn_main(int isAppli, unsigned short OptionNum)
{
    Bdisp_AllClr_DDVRAM(); //Efface l'écran
    difficult=input(affichage,"Difficulty (1-9)");
    if(difficult>9)difficult=9;
    if(difficult<1)difficult=1;
    Bdisp_AllClr_DDVRAM();
    
    while(1){
        NewNombre();
        boucle();
        
        Bdisp_AllClr_DDVRAM();
        locate(1,1);
        Print("Trouvé !");
        sprintf(affichage,"Score : %d",nbrcoup);
        locate(1,3);
        Print(affichage);
        
        PrintMini(70,58,"AC/on to leave",0); //Affiche en petit
        Bdisp_PutDisp_DD();
        for(tp=0;tp<10000;tp++)if(IsKeyDown(KEY_CTRL_AC))return 1;
    }
    return 1;
}

int NewNombre(){
    nombre=1+(int)((float)rand()*((difficult+1)*10)/(RAND_MAX+1));
}

//A NE PAS TOUCHER
#pragma section _BR_Size
unsigned long BR_Size;
#pragma section
#pragma section _TOP
int InitializeSystem(int isAppli, unsigned short OptionNum){return INIT_ADDIN_APPLICATION(isAppli, OptionNum);}
#pragma section


Le retour du compilateur
Cliquer pour enrouler
Executing Hitachi SH C/C++ Compiler/Assembler phase

set SHC_INC=C:\Users\Moi\Documents\Casio\SDK\SDKk\OS\SH\include
set PATH=C:\Users\Moi\Documents\Casio\SDK\SDKk\OS\SH\bin
set SHC_LIB=C:\Users\Moi\Documents\Casio\SDK\SDKk\OS\SH\bin
set SHC_TMP=C:\Users\Moi\Documents\Casio\SDK\Programmes\PouM\Debug
"C:\Users\Moi\Documents\Casio\SDK\SDKk\OS\SH\bin\shc.exe" -subcommand=C:\Users\Moi\AppData\Local\Temp\hmk3224.tmp
C:\Users\Moi\Documents\Casio\SDK\Programmes\PouM\PouM.c(33) : C1016 (W) Argument mismatch
C:\Users\Moi\Documents\Casio\SDK\Programmes\PouM\PouM.c(36) : C1016 (W) Argument mismatch
C:\Users\Moi\Documents\Casio\SDK\Programmes\PouM\PouM.c(38) : C1016 (W) Argument mismatch

Executing Hitachi OptLinker04 phase

"C:\Users\Moi\Documents\Casio\SDK\SDKk\OS\SH\bin\Optlnk.exe" -subcommand=C:\Users\Moi\AppData\Local\Temp\hmk333D.tmp

** L2310 (E) Undefined external symbol "_input" referenced in "C:\Users\Moi\Documents\Casio\SDK\Programmes\PouM\Debug\PouM.obj"

Optimizing Linkage Editor Abort

HMAKE MAKE UTILITY Ver. 1.1
Copyright (C) Hitachi Micro Systems Europe Ltd. 1998
Copyright (C) Hitachi Ltd. 1998


    ERROR: Process failed with return code: 1
Build was not successful.

Limachi Hors ligne Youtuber Points: 2798 Défis: 67 Message

Citer : Posté le 24/10/2013 13:34 | #


l'erreur vient sans doute de la double définition d'affichage que tu définis comme un int et un tableau de char sans changer le nom.
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)
Theprog Hors ligne Membre Points: 1447 Défis: 20 Message

Citer : Posté le 24/10/2013 14:14 | #


Merci
Mais il reste toujours 3 erreurs (j'ai mis a jour mon post précédant ) que je n'arrive pas a résoudre
Dark storm Hors ligne Labélisateur Points: 11571 Défis: 176 Message

Citer : Posté le 24/10/2013 17:43 | #


pour les Warnings (W), au pire c'est pas grave. Pour le input, tu as inclus la librairie "EasyCoding" (voir sur le site) ?
Si oui, recompile tout (file -> rebuild all)
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Limachi Hors ligne Youtuber Points: 2798 Défis: 67 Message

Citer : Posté le 24/10/2013 17:43 | #


désolé de te contredire, mais ce n'est pas 3 erreurs, mais 3 warning et une erreur de définition (input n’existe pas, vérifie les libs que tu utilise et le pdf qui indique quelles fonctions des libs de base ne sont pas disponibles).
les 3 warning ne bloquent pas la compilation, tu peux les ignorer.

Ajouté le 24/10/2013 à 17:44 :
yey, encore une fois on peut voir la synchronicité des gens de ce forum
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)
Theprog Hors ligne Membre Points: 1447 Défis: 20 Message

Citer : Posté le 24/10/2013 19:28 | #


D'accord merci et les Warning ca correspond a quoi ?
C'est genre que lui il pense qu'il y a une erreur de prog mais il est pas sur ?
Dark storm Hors ligne Labélisateur Points: 11571 Défis: 176 Message

Citer : Posté le 24/10/2013 19:30 | #


Les warnings correspondent à des irrégularités de programmation : utilisation d'un int alors qu'il faut un unsigned int, etc. Dès fois, ça m'arrive même que le compilo m'en invente avec les fonctions officielles XD
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Theprog Hors ligne Membre Points: 1447 Défis: 20 Message

Citer : Posté le 24/10/2013 21:23 | #


Je comprens pas trop ce qui manque vu que avec le Snake ca marche parfaitement mais avec mon PouM ca marche pas
Il manque rien dans mon prog donc c'est forcement dans le dossier qui manque quelque chose mais quoi et ou ?
Limachi Hors ligne Youtuber Points: 2798 Défis: 67 Message

Citer : Posté le 24/10/2013 22:12 | #


on vient de te dire quoi: la définition de la fonction input qui n'est pas une fonction présente dans la fxlib.h et qui n'est sans doute pas dans les autres libs que tu as inclus. et c'est d'ailleurs la première fois que je vois cette fonction pour les calto, tu me rappelle a quoi elle sert?

Ajouté le 24/10/2013 à 22:15 :
Dark Storm a écrit :
Les warnings correspondent à des irrégularités de programmation : utilisation d'un int alors qu'il faut un unsigned int, etc. Dès fois, ça m'arrive même que le compilo m'en invente avec les fonctions officielles XD

ouaip, a chaque fois que l'on utilise un print ou une fonction du même type de la fxlib.h et des sous libs qu'elle inclut, on a un warning.
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)
Dark storm Hors ligne Labélisateur Points: 11571 Défis: 176 Message

Citer : Posté le 24/10/2013 22:18 | #


Limachi a écrit :
on vient de te dire quoi: la définition de la fonction input qui n'est pas une fonction présente dans la fxlib.h et qui n'est sans doute pas dans les autres libs que tu as inclus. et c'est d'ailleurs la première fois que je vois cette fonction pour les calto, tu me rappelle a quoi elle sert?

Elle est incluse dans EasyCoding si mes souvenirs sont bons. C'est une fonction d'input de texte alternative, mais j'ai jamais réussi à la faire marcher correctement, donc j'ai fait la mienne.
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Limachi Hors ligne Youtuber Points: 2798 Défis: 67 Message

Citer : Posté le 25/10/2013 01:18 | #


Je n'utilise pas easy coding, la quasi totalité des libs que j'utilise sont celle que j'ai écrites ou adapté (j'ai entre autre fais un remade de MLlib).
Theprog, assure toi du fonctionnement de la fonction input.
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)
Dark storm Hors ligne Labélisateur Points: 11571 Défis: 176 Message

Citer : Posté le 25/10/2013 09:50 | #


Limachi a écrit :
Je n'utilise pas easy coding

Moi non plus. La seule que j'utilise est ML, qui me sert énormément pour le coup.
Les autres, je vois pas l'intêret : j'ai pas besoin d'un tas de fonctions de EC, j'ai juste fait ma fonction d'affichage d'entier.
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Theprog Hors ligne Membre Points: 1447 Défis: 20 Message

Citer : Posté le 25/10/2013 10:39 | #


Ok merci
C'est juste que comme j'avais vu sur un topic que muesalco conseiller de commencer par son programmes qu'il avait commenté ben je me suis pas posé de questions
Mais bon je retiens
Ninestars Hors ligne Membre Points: 2451 Défis: 24 Message

Citer : Posté le 27/10/2013 21:20 | #


Bonsoir, j'ai un Type not compatible for "=" sur la dernière ligne.
int* data_segments;

[purple]int[/purple] AddIn_main(int isAppli, unsigned short OptionNum)
{
    [purple]unsigned int[/purple] key;
    [purple]int[/purple] i;
    Segment seg;

    [purple]int[/purple] niveau = [maroon]1[/maroon];
    [purple]int[/purple] max_segment;
    Cercle cercle = {[maroon]60[/maroon], [maroon]30[/maroon], [maroon]10[/maroon]};
    
    data_segments = malloc( 4 );


Je ne comprends pas pourquoi :/
Précédente 1, 2, 3 ··· 10, 11, 12, 13, 14, 15, 16 ··· 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 50 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