[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
Citer : Posté le 01/03/2014 14:50 | #
T'aurais le code en C (ton programme principal)
Citer : Posté le 01/03/2014 15:06 | #
Heu, vous allez probablement me prendre pour un boulet, mais j'avais oublié une parenthèse et un point-virgule dans mon .h
J'ai recompilé et là...c'est nickel.
Je me sens con tout à coup
Mais il va quand même falloir qu'on m'explique pourquoi est-ce que le compilateur est allé chercher ces erreurs dans les fichiers du S.D.K. :/
Citer : Posté le 01/03/2014 15:14 | #
C'est le problème des compilateurs ; des fois tu n'as qu'une simple erreur et du coup il va t'en chercher de partout (essaie par exemple de mettre une accolade fermante en trop, tu verras )
Des fois, il y a tellement d'erreurs que les premières lignes sont coupées, et des erreurs ne sont pas visibles.
Et le compilateur est probablement allé chercher une erreur dans les fichiers du SDK car l'erreur était avant leur inclusion (regarde la première erreur du topic)
Citer : Posté le 01/03/2014 15:14 | #
Il compte peut-être un décalage de parenthèses ? qui c'est répercuter dans les fichier du SDK.
Zelda de Smashmaster
Super Geek Brothers de Siapran
Pac-Man
Pac-Man Color
Meta Ball
Add-ins Jetpack Joyride et Pac-Man sur PRIZM (les 2 non commencés mais en réflexion)
A la recherche des sprites jetpack Joride si quelqu'un les a en couleur
Citer : Posté le 01/03/2014 19:53 | #
c'est exactement ce qu'il c'est passé, et ça peut parfois être pire
-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
-Portal2D de JavierXD
-CalCraft de Wime
-GeekBros du groupe GeekBrothers (Eiyeron,Siapran,KevKevVTT,Adbook,LIMachi)
Citer : Posté le 02/03/2014 12:01 | #
Alors la pour le coups je comprends pas trop
Executing Hitachi SH C/C++ Compiler/Assembler phase
set SHC_INC=C:\Documents and Settings\User\Bureau\User\New Folder\OS\SH\include
set PATH=C:\Documents and Settings\User\Bureau\User\New Folder\OS\SH\bin
set SHC_LIB=C:\Documents and Settings\User\Bureau\User\New Folder\OS\SH\bin
set SHC_TMP=C:\Documents and Settings\User\Bureau\User\Casio\CPC\Debug
WARNING: The following dependant file(s) do not exist: "APPOLO.h" "MonochromeLib.h" "windows.h" "jeux.h". Line: 80
WARNING: The following dependant file(s) do not exist: "APPOLO.h" "MonochromeLib.h" "windows.h" "jeux.h". Line: 97
WARNING: The following dependant file(s) do not exist: "APPOLO.h" "MonochromeLib.h" "windows.h" "jeux.h". Line: 114
WARNING: The following dependant file(s) do not exist: "APPOLO.h" "MonochromeLib.h" "windows.h" "jeux.h". Line: 131
"C:\Documents and Settings\User\Bureau\User\New Folder\OS\SH\bin\shc.exe" -subcommand=C:\DOCUME~1\User\LOCALS~1\Temp\hmk1F7.tmp
: 1
Build was not successful.
Edit: c'est bon j'ai trouvé
Citer : Posté le 02/03/2014 12:06 | #
T'as mis tes fichiers dans le bon dossiers ?
Zelda de Smashmaster
Super Geek Brothers de Siapran
Pac-Man
Pac-Man Color
Meta Ball
Add-ins Jetpack Joyride et Pac-Man sur PRIZM (les 2 non commencés mais en réflexion)
A la recherche des sprites jetpack Joride si quelqu'un les a en couleur
Citer : Posté le 02/03/2014 12:11 | #
Oui les fichiers y sont tout y est ...
J'ai une nouvelle erreur ...
Executing Hitachi SH C/C++ Compiler/Assembler phase
set SHC_INC=C:\Documents and Settings\User\Bureau\User\New Folder\OS\SH\include
set PATH=C:\Documents and Settings\User\Bureau\User\New Folder\OS\SH\bin
set SHC_LIB=C:\Documents and Settings\User\Bureau\User\New Folder\OS\SH\bin
set SHC_TMP=C:\Documents and Settings\User\Bureau\User\Casio\CPC\Debug
WARNING: The following dependant file(s) do not exist: "APPOLO.h" "MonochromeLib.h" "windows.h" "jeux.h". Line: 80
"C:\Documents and Settings\User\Bureau\User\New Folder\OS\SH\bin\shc.exe" -subcommand=C:\DOCUME~1\User\LOCALS~1\Temp\hmk205.tmp
C:\Documents and Settings\User\Bureau\User\Casio\CPC\jeux.h(17) : C2500 (E) Illegal token "31"
C:\Documents and Settings\User\Bureau\User\Casio\CPC\jeux.h(17) : C2500 (E) Illegal token ";"
C:\Documents and Settings\User\Bureau\User\Casio\CPC\jeux.h(17) : C2142 (E) Illegal void type
C:\Documents and Settings\User\Bureau\User\Casio\CPC\jeux.h(17) : C2500 (E) Illegal token ","
C:\Documents and Settings\User\Bureau\User\Casio\CPC\jeux.h(18) : C2500 (E) Illegal token "31"
C:\Documents and Settings\User\Bureau\User\Casio\CPC\jeux.h(18) : C2500 (E) Illegal token ";"
C:\Documents and Settings\User\Bureau\User\Casio\CPC\jeux.h(18) : C2142 (E) Illegal void type
C:\Documents and Settings\User\Bureau\User\Casio\CPC\jeux.h(18) : C2500 (E) Illegal token ","
C:\Documents and Settings\User\Bureau\User\Casio\CPC\APPOLO.c(70) : C1016 (W) Argument mismatch
C:\Documents and Settings\User\Bureau\User\Casio\CPC\APPOLO.c(71) : C1016 (W) Argument mismatch
C:\Documents and Settings\User\Bureau\User\Casio\CPC\APPOLO.c(75) : C1016 (W) Argument mismatch
C:\Documents and Settings\User\Bureau\User\Casio\CPC\APPOLO.c(77) : C1016 (W) Argument mismatch
C:\Documents and Settings\User\Bureau\User\Casio\CPC\APPOLO.c(79) : C1016 (W) Argument mismatch
C:\Documents and Settings\User\Bureau\User\Casio\CPC\APPOLO.c(81) : C1016 (W) Argument mismatch
C:\Documents and Settings\User\Bureau\User\Casio\CPC\APPOLO.c(88) : C1016 (W) Argument mismatch
C:\Documents and Settings\User\Bureau\User\Casio\CPC\APPOLO.c(106) : C1016 (W) Argument mismatch
C:\Documents and Settings\User\Bureau\User\Casio\CPC\APPOLO.c(107) : C1016 (W) Argument mismatch
C:\Documents and Settings\User\Bureau\User\Casio\CPC\APPOLO.c(108) : C1016 (W) Argument mismatch
C:\Documents and Settings\User\Bureau\User\Casio\CPC\APPOLO.c(109) : C1016 (W) Argument mismatch
C:\Documents and Settings\User\Bureau\User\Casio\CPC\APPOLO.c(113) : C1016 (W) Argument mismatch
C:\Documents and Settings\User\Bureau\User\Casio\CPC\APPOLO.c(114) : C1016 (W) Argument mismatch
C:\Documents and Settings\User\Bureau\User\Casio\CPC\APPOLO.c(116) : C1016 (W) Argument mismatch
C:\Documents and Settings\User\Bureau\User\Casio\CPC\APPOLO.c(117) : C1016 (W) Argument mismatch
C:\Documents and Settings\User\Bureau\User\Casio\CPC\APPOLO.c(132) : C1016 (W) Argument mismatch
C:\Documents and Settings\User\Bureau\User\Casio\CPC\APPOLO.c(137) : C1016 (W) Argument mismatch
C:\Documents and Settings\User\Bureau\User\Casio\CPC\APPOLO.c(164) : C1016 (W) Argument mismatch
C:\Documents and Settings\User\Bureau\User\Casio\CPC\APPOLO.c(165) : C1016 (W) Argument mismatch
C:\Documents and Settings\User\Bureau\User\Casio\CPC\APPOLO.c(166) : C1016 (W) Argument mismatch
C:\Documents and Settings\User\Bureau\User\Casio\CPC\APPOLO.c(167) : C1016 (W) Argument mismatch
C:\Documents and Settings\User\Bureau\User\Casio\CPC\APPOLO.c(168) : C1016 (W) Argument mismatch
C:\Documents and Settings\User\Bureau\User\Casio\CPC\APPOLO.c(170) : C1016 (W) Argument mismatch
C:\Documents and Settings\User\Bureau\User\Casio\CPC\APPOLO.c(171) : C1016 (W) Argument mismatch
C:\Documents and Settings\User\Bureau\User\Casio\CPC\APPOLO.c(172) : C1016 (W) Argument mismatch
C:\Documents and Settings\User\Bureau\User\Casio\CPC\APPOLO.c(191) : C1016 (W) Argument mismatch
C:\Documents and Settings\User\Bureau\User\Casio\CPC\APPOLO.c(223) : C1016 (W) Argument mismatch
C:\Documents and Settings\User\Bureau\User\Casio\CPC\APPOLO.c(224) : C1016 (W) Argument mismatch
C:\Documents and Settings\User\Bureau\User\Casio\CPC\APPOLO.c(225) : C1016 (W) Argument mismatch
C:\Documents and Settings\User\Bureau\User\Casio\CPC\APPOLO.c(226) : C1016 (W) Argument mismatch
C:\Documents and Settings\User\Bureau\User\Casio\CPC\APPOLO.c(227) : C1016 (W) Argument mismatch
C:\Documents and Settings\User\Bureau\User\Casio\CPC\APPOLO.c(229) : C1016 (W) Argument mismatch
C:\Documents and Settings\User\Bureau\User\Casio\CPC\APPOLO.c(238) : C1016 (W) Argument mismatch
C:\Documents and Settings\User\Bureau\User\Casio\CPC\APPOLO.c(239) : C1016 (W) Argument mismatch
C:\Documents and Settings\User\Bureau\User\Casio\CPC\APPOLO.c(243) : C1016 (W) Argument mismatch
C:\Documents and Settings\User\Bureau\User\Casio\CPC\APPOLO.c(249) : C1016 (W) Argument mismatch
C:\Documents and Settings\User\Bureau\User\Casio\CPC\APPOLO.c(253) : C1016 (W) Argument mismatch
C:\Documents and Settings\User\Bureau\User\Casio\CPC\APPOLO.c(254) : C1016 (W) Argument mismatch
C:\Documents and Settings\User\Bureau\User\Casio\CPC\APPOLO.c(255) : C1016 (W) Argument mismatch
C:\Documents and Settings\User\Bureau\User\Casio\CPC\APPOLO.c(257) : C1016 (W) Argument mismatch
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.
Edit:
Le fameux jeux.h
// Constante gravitationnelle simplifiée GMMT tq: F = GMMT / r2
#define GMMT 10
#define xta 63
#define xtb 90
#define yt 31;
#define RayT 4
// Lune
// Constante gravitationnelle simplifiée GMML tq: F = GMML / r2
#define GMML 2
#define xl 30
#define yl 31
#define RayL 2
void force_subie(float Gm1m2, float xc, float yc, float x, float y, int *fx, int *fy);
void integreUnPasTerre(float GmmT, float xt, float yt, float x, float y, float vx, float vy, float *dx, float *dy, float *dvx, float *dvy);
void anime1(float xt, float yt, float x, float y, float vx, float vy);
int crashed(float RayCorps, float xc, float yc, float x, float y);
int jeu1();
int jeu2();
int jeu3();
int jeu4();
int jeu5();
int jeu6();
int jeu7();
Citer : Posté le 02/03/2014 12:46 | #
#define yt 31;
void integreUnPasTerre(float GmmT, float xt, float yt, float x, float y, float vx, float vy, float *dx, float *dy, float *dvx, float *dvy);
Met toujours tes define en majuscule, ça t’évitera ce genre d'erreur
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
merci a tout le monde pour son soutien
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 !Citer : Posté le 02/03/2014 12:47 | #
Dac merci donc en gros je met mes DEFINE apres mes prototypes ?
Citer : Posté le 02/03/2014 12:49 | #
non, met #define YT 31; a la place, sinon le define pourra remplacer certaines variables (ce qui est le cas ici)
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
merci a tout le monde pour son soutien
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 !Citer : Posté le 06/04/2014 21:43 | #
Je parie que je suis le premier à avoir un warning comme ça, avec l'erreur qui va avec
Firefly_3D.c(81) : C5055 (W) Too many arguments in macro invocation
Firefly_3D.c(20) : C5274 (E) Improperly terminated macro invocation
Ajouté le 06/04/2014 à 21:43 :
Et non, j'ai pas changé l'ordre des erreurs, on en a bien une à la ligne 20 après celle de la ligne 81
Citer : Posté le 06/04/2014 21:51 | #
Bravo
Pour ma part, je ne savais pas que le compilateur insultait les déclarations de constructeurs sans les déclarations des méthodes virtuelles.
Citer : Posté le 07/04/2014 08:23 | #
Quelqu'un sait pourquoi j'ai le droit à un Illegal token "{" avec ce code ?
Citer : Posté le 07/04/2014 08:35 | #
Tu as oublié le "," entre les }{
Tu devrais avoir
Citer : Posté le 07/04/2014 08:44 | #
Cool, merci
C'est bizarre, parce que ce n'est pas indiqué dans ce tuto.
Citer : Posté le 07/04/2014 11:23 | #
Effectivement, il a oublié le ","
Citer : Posté le 10/04/2014 19:20 | #
Bonjour, j'ai une erreur que je ne comprends pas
** L2310 (E) Undefined external symbol "_icon" referenced in "Z:\home\*mon username*\Téléchargements\PixEdit1\Debug\PixEdit.obj"
Est-ce que quelqu'un peut m'aider please ?
Je précise que l'erreur survient après "Executing Hitachi OptLinker04 phase"
C'est à dire (je pense) pendant le linkage.
Coïncidence ? Je ne pense pas.
Citer : Posté le 10/04/2014 20:28 | #
Il te dit qu'il n'a pas trouvé la fonction qui s'appelle "icon()"
Vérifie que le fichier c est bien inclut dans le projet, et que la focntion est bien définie.
Citer : Posté le 10/04/2014 20:32 | #
Non, ça c'est mon projet que je lui ai envoyé.
La fonction est dans le header.
Ne me demandez pas pourquoi.
Citer : Posté le 10/04/2014 21:17 | #
Ah d'accord, merci, je vais regarder ! (et moi qui pensais qu'il y avait un problème avec l'icone du programme qu'il n'aurait pas trouvée... )
Coïncidence ? Je ne pense pas.