#1 Le 09/11/2009, à 23:19
mon script plante causée par une ancienne version. == RESOLU
Bonsoir à tous et à toutes,
excusez moi mais je teste mon script et sa ne marche pas. la compilation me renvoie que j'utilise un ancien style de déclaration de fonction.
je vous montre un code que je fais que je compile.
#include <stdio.h>
#include <stdlib.h>
int triple(int nombre)
{
return 3 * nombre;
}
int main (int argc, char *argv[])
{
int nombreEntre = 0;
printf (" Veuillez un nombre! \n");
scanf ("%d", &nombreEntre);
nombreTriple = triple (nombreEntre);
printf ("Le triple de votre nombe est %d\n", nombreTriple);
return 0;
}Merci de bien vouloir me dire ce que je dois faire à part un sudo apt-get update, qui ne resoud rien dans mon cas.
franchement je sèche. J'ai fait la mise à niveau de ma distribution sans succès et je suis revenu sur mon 9.04.
Merci de me venir en aide.
Dernière modification par herzak (Le 11/11/2009, à 12:32)
Hors ligne
#2 Le 10/11/2009, à 09:26
Re : mon script plante causée par une ancienne version. == RESOLU
Comment fais tu pour compiler ton code et quelles sont exactement les messages d'erreurs qu'ils te renvoie
Hors ligne
#3 Le 10/11/2009, à 10:20
Re : mon script plante causée par une ancienne version. == RESOLU
Bonjour,
voilà comment je compile mon code
gcc fonction.c -o fonctionet voici le message que je reçois
fonction.c: In function ‘triple’:
fonction.c:6: erreur: ‘nombre’ redeclared as different kind of symbol
fonction.c:4: erreur: previous definition of ‘nombre’ was here
fonction.c: In function ‘main’:
fonction.c:14: erreur: parameter ‘nombreEntree’ is initialized
fonction.c:14: erreur: parameter ‘nombreTriple’ is initialized
fonction.c:15: erreur: déclaration de paramètre d'ancien style dans la définition prototypée de fonction
fonction.c:17: erreur: ‘nombreEntree’ undeclared (first use in this function)
fonction.c:17: erreur: (Each undeclared identifier is reported only once
fonction.c:17: erreur: for each function it appears in.)
fonction.c:19: erreur: ‘nombreTriple’ undeclared (first use in this function)
Merci de votre aide.
Hors ligne
#4 Le 10/11/2009, à 18:55
Re : mon script plante causée par une ancienne version. == RESOLU
Pour ton source j'ai (je l'ai appelé toto...
) :
$ gcc toto.c
toto.c: In function ‘main’:
toto.c:15: error: ‘nombreTriple’ undeclared (first use in this function)
toto.c:15: error: (Each undeclared identifier is reported only once
toto.c:15: error: for each function it appears in.)Effectivement, nombreTriple n'est pas déclaré...
Avec le source :
#include <stdio.h>
#include <stdlib.h>
int triple(int nombre)
{
return 3 * nombre;
}
int main (int argc, char *argv[])
{
int nombreEntre = 0;
printf (" Veuillez un nombre! \n");
scanf ("%d", &nombreEntre);
int nombreTriple = triple (nombreEntre);
printf ("Le triple de votre nombe est %d\n", nombreTriple);
return 0;
}(j'ai rajouté int devant nombreTriple=...)
ça passe... et ça marche !
Pour info :
$gcc --version
gcc (Ubuntu 4.4.1-4ubuntu8) 4.4.1
Copyright (C) 2009 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.Linux-Mint Maya 64 Cinnamon sur Toshiba Satellite P200-1BY. Linux-Mint Nadia 64 Cinnamon sur Compaq Presario SR5617FR
En ligne
#5 Le 10/11/2009, à 20:55
Re : mon script plante causée par une ancienne version. == RESOLU
Merci pour ton aide,
mais sa ne fonctionne toujours pas et j'ai les mêmes erreurs.
j'ai vérifié la version du logiciel gcc installé sur ma distribution et voilà ce que j'obtiens:
gcc --version
gcc (Ubuntu 4.3.3-5ubuntu4) 4.3.3
Copyright © 2008 Free Software Foundation, Inc.
Ce logiciel est libre; voir les sources pour les conditions de copie. Il n'y a PAS
GARANTIE; ni implicite pour le MARCHANDAGE ou pour un BUT PARTICULIEje l'ai compilé comme vous
gcc fonction.cmais aussi sa ne donne rien.
Bon je crois qu'il ne me reste plus le choix que de désinstaller "gcc et sa suite" pour la réinstaller de sorte à être au même niveau que vous les pros.
Merci
nb: Après avoir désinstallé puis réinstallé "build-essential; fakeroot; et chekinstall" ma version reste toujours à 4.3.3.
S'il vous comment dois-je m'y prendre pour passer gcc à 4.4.1
Merci
Dernière modification par herzak (Le 10/11/2009, à 22:20)
Hors ligne
#6 Le 10/11/2009, à 23:39
Re : mon script plante causée par une ancienne version. == RESOLU
Merci à vous de m'avoir mis sur la piste.
Après plusieurs manipulations ma compilation marche avec la version 4.3.3 du logiciel gcc.
Mais je rencontre une erreur de retour de la variable nombreTriple( qui renvoit ce que je l'affecte dès sa déclaration).
Je vais essayer de corriger à mon niveau et ensuite si je n'y arrive pas je vous montrerais mon code question d'avoir votre avis.
Merci et bonne nuit
Hors ligne
#7 Le 11/11/2009, à 10:34
Re : mon script plante causée par une ancienne version. == RESOLU
Je ne pense pas que ce soit la version de gcc qui soit en cause. Ce code tourne depuis "la nuit des temps". Pour info, c'est le gcc standard de Karmic (je sais, faut mettre à jour ma signature...).
Linux-Mint Maya 64 Cinnamon sur Toshiba Satellite P200-1BY. Linux-Mint Nadia 64 Cinnamon sur Compaq Presario SR5617FR
En ligne
Pages : 1
- Accueil
- » Forum
- » Terminal, scripts et ligne de commande
- » mon script plante causée par une ancienne version. == RESOLU
