Probleme de compilation d'un programme en c

Résolu/Fermé
light59155 Messages postés 5 Date d'inscription mercredi 30 juillet 2008 Statut Membre Dernière intervention 31 juillet 2008 - 30 juil. 2008 à 11:44
light59155 Messages postés 5 Date d'inscription mercredi 30 juillet 2008 Statut Membre Dernière intervention 31 juillet 2008 - 31 juil. 2008 à 08:38
Bonjour,

J'ai fait un programe avec MPLAB et C18, ce programme est en C.
Suite à ce programme j'ai voulu le compiler et il m'a afficher une erreur mais je ne sait pas d'ou elle vient.
Voicvi le message d'erreur que j'ai eu:

Executing: "C:\MCC18\bin\mcc18.exe" -p=18F8723 /i"C:\MCC18\h" "liaison.c" -fo="liaison.o" -D__DEBUG -Ou- -Ot- -Ob- -Op- -Or- -Od- -Opa-
A language-plugin exception occurred and was logged.
----------------------------------------------------------------------
Debug build of project `C:\Program Files\liaison.mcp' failed.
Preprocessor symbol `__DEBUG' is defined.
Wed Jul 30 08:26:53 2008
----------------------------------------------------------------------
BUILD FAILED

Ce programme va servir à choisir vers quel oscillateur on va se diriger.
Il y aura dans ce programme une liaison I2C.

Merci d'avance pour vos réponses.

Voici le programme qui ne marche pas:


/*programme pour la liaison I2C*/
/*Ce programme sert à choisir sur quelle carte on veut aller. */
/*Ensuite on choisi quelle oscillateur ET/OU capteur on veut commander*/

#include <p18f8723.h>
#include <stdio.h>

/*-----------------------------*/
/* Définition des constantes */
/*-----------------------------*/

#define adresse_carte 0x09

/*---------------------------*/
/* Prototype des fonctions */
/*---------------------------*/

void main(void);
unsigned char oscillateur(void);
unsigned char capteur(void);
int choix_carte(unsigned char adresse);

/*----------------------*/
/* Debut du programme */
/*----------------------*/

void main(void)
{
unsigned int C;
unsigned int X;
unsigned int Y;

/*---------------------------------------------------*/
/* Choisir la carte avec laqulle on veut intéragir */
/*---------------------------------------------------*/
/*
printf (p);
scanf ("%d", &C);
choix_carte(C);
*/
/*--------------------------------------*/
/* Choisir la valeur de l'oscillateur */
/*--------------------------------------*/
/* printf(p);
scanf("%d", &X);
*/
/*--------------------------------*/
/* Choisir la valeur du capteur */
/*--------------------------------*/
/* printf("Numero du capteur :");
scanf("%d", &Y);
*/
/*------------------------------------------*/
/* A-t-on un oscillateur et/ou un capteur */
/*------------------------------------------*/

if (1 <= X <= 10)
oscillateur();
else if (1 <= Y <= 3)
capteur();
}

int choix_carte(unsigned char adresse)
{
if (adresse = adresse_carte)
{return (1);}
else
{return (0);}
}par contre les programme de l'oscillateur et du capteur marche, mais sont à part si vous les voulait dites le moi.
            
                
A voir également:

5 réponses

Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
30 juil. 2008 à 16:51
Salut.
Je ne connait pas ce compilo.
Le message d'erreur n'est vraiment pas eexplicite, il dit juste qu'il a planté. J'ai l'impression que le problème viens d'un problème dans la ligne d'exécution de la compilation, je dirai qu'une option ou une suite d'option fait planté le compilateur, surement dans la suite des -O...
0
Archi-dessin Messages postés 270 Date d'inscription samedi 19 avril 2008 Statut Membre Dernière intervention 28 décembre 2009 25
30 juil. 2008 à 20:46
salut,
votre programme est attaché à d'autre petit programme externe du programme principal
0
light59155 Messages postés 5 Date d'inscription mercredi 30 juillet 2008 Statut Membre Dernière intervention 31 juillet 2008
31 juil. 2008 à 08:18
oui mon programme utilise d'autre petit programme annexe qui eux fonctionnent correctement seul.
Seulement celui là ne fonctionne pas seul et donc le programme en entier ne fonctionne pas.
0
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
31 juil. 2008 à 08:37
heu... là il me semble que tu ne fait qu'une compilation, donc normalement pas de problème à ce stade de DLL ou autre.
Le seul message du compilo qui pourrait être intéressant est :
"A language-plugin exception occurred and was logged. "
Qui si je traduit bien veux dire qu'une exception (une erreur) d'une des des extension du C s'est produite. Et que cette erreur a été consigné. Reste à savoir où a été écrite cette erreur.
Si tu compile correctement d'autre fichier, ça me conforte dans l'idée ça viens du compilo, peut être d'une option que tu n'utilise pas, ou qui n'est pas utilisé d'habitude.
ça c'est moche : (1 <= X <= 10) en C standard c'est équivalent à ((1 <= X) <= 10) c'est à dire toujours vrai ! Il faut alors écrire (1 <= X && X <= 10)
if (adresse = adresse_carte)
{return (1);} 
une jolie affectation au lieu d'une comparaison ! la comparaison en C, c'est '=='
La déclaration de main en dehors de l'implementation ne lui plait peut être pas.
Sinon, je ne vois rien de spécifique ou de tordu dans ton programme qui nécessiterai une telle erreur.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
light59155 Messages postés 5 Date d'inscription mercredi 30 juillet 2008 Statut Membre Dernière intervention 31 juillet 2008
31 juil. 2008 à 08:38
j'ai réussi à résoudre mon problème.
en fait j'avait rajouter le fichier liaison.o, c à cause de ça qu'il planté.
Après l'avoir enlevé je peut continuer, malgré les quelques erreurs qu'il me trouve encore mais maintenant c en compilant tous le programme et plus partie par partie.

merci à tous pour vos réponse
0