C, pb avec différentes versions de gcc á la compilation - C - Programmation
Marsh Posté le 10-07-2008 à 12:23:19
peut être que les déclarations en plein code n'étaient pas encore supportées par la version 2.96 ?
essai de compiler avec l'option -std=c99 ou de coller quelques erreurs ici pour en savoir plus ?
a+
Marsh Posté le 10-07-2008 à 12:48:53
Voici les erreurs,( ceci pour chaque variable préalablement déclarée) :
tilt_processM10.c: In function `main':
tilt_processM10.c:216: parse error before `char'
tilt_processM10.c:229: `E_upp' undeclared (first use in this function)
tilt_processM10.c:229: (Each undeclared identifier is reported only once
tilt_processM10.c:229: for each function it appears in.)
tilt_processM10.c:230: `E_nidur' undeclared (first use in this function)
...
J'ai essayé avec l'option -std=c99, sans succés.
Marsh Posté le 10-07-2008 à 12:57:46
Le code :
Code :
|
[edit: j'ai mis á jour la mise en forme]
[edit2: cette fois c'est ok, compilable avec gcc 4.1.1 ]
Elmoricq-edit : balises code
Marsh Posté le 10-07-2008 à 15:26:04
Je me suis un instant dit que c'était juste cette boulette, super ; mais en fait le ´;` a juste été éjecté en écrivant le message.
Marsh Posté le 10-07-2008 à 16:05:38
il y a eu une boulette lors de l'edit je pense
recompile de ton côté sur gcc 4.1
pour la mise en forme il ya les balises [cpp]
Marsh Posté le 10-07-2008 à 17:05:40
XXeon a écrit : |
Si t'as encore des problèmes sur l'autre machine, supprime l'espace entre void et l'accolade. J'ai déjà vu des compilateurs se planter sur ce genre de détails.
Marsh Posté le 10-07-2008 à 17:30:23
Dans main, mets voir le printf après les déclarations.
PS: pour une compilation rapide: cc tilt_processM10.c
Marsh Posté le 10-07-2008 à 17:51:25
Merci á vous de jeter un oeil.
C'est fait, mais toujours pas moyen de compiler sur l'autre machine.
Marsh Posté le 10-07-2008 à 18:00:32
Bon, déjà, c'est quoi les erreurs que tu obtiens (les mêmes que les précédantes ?).
Si c'est le cas, compile ton programme avec -E, du genre :
gcc -E tilt_processM10.c
La compilation va s'arrêter à la phase de préprocessing.
Et regarde autour des lignes indiquées (fait attention, car ton programme va être beaucoup plus long), et éventuellement poste le morceau au alentour (pas tout le programme, puisqu'il va y avoir des milliers de lignes).
Marsh Posté le 10-07-2008 à 19:23:30
ok, j'ai récupéré un long fichier .E , aprés je ne sais oú sont les "lignes indiquées". Je me documente, mais je ne comprends pas trés bien ce fichier..
(J'ajoute que le pb est toujours que toutes les variables sont "undeclared" avec gcc 2.96 sur l'autre machine)
Marsh Posté le 11-07-2008 à 11:25:33
Avec l'option -E, tu bâtis ton code avec le code utile des fichiers "include" et bibliothèques externes. Et si j'ai bien compris, il y a pas eu d'erreur.
Bon maintenant supposons que l'autre machine est en ANSI C strict. Fais gcc -pedantic tilt_processM10.c
Et tu obtiens:
tilt_processM10.c: In function ‘main’:
pruef.c:217: warning: ISO C90 forbids mixed declarations and code
Pour corriger, tu dois mettre toutes les déclarations de variables avant le code.
Code :
|
Marsh Posté le 11-07-2008 à 12:56:44
Trés bien, ca fonctionne. C'était aussi bête que ca, merci.
Et moi, j'ai encore un long chemin á faire en programmation...
edit: Cela dit, sur l'autre machine ca compile mais le prog échoue, je creuse.
Marsh Posté le 11-07-2008 à 15:53:40
Euh... je tiens à te rassurer sur un point. En 7 ans de carrière, je n'ai eu qu'une seule fois ce problème et il est tout à fait possible qu'un développeur ne le rencontre jamais. C'est un problème très rare.
Marsh Posté le 10-07-2008 à 11:30:29
Bonjour,
je suis debutant en programmation. J'ai laborieusement ficelé un petit programme (sous fedora 5), que je compile avec gcc 4.1.1 ou 4.0.0, ok.
Seulement ce programme doit être envoyé sur un ordi isolé á 300 km (ssh) et compilé lá bas, cet ordinateur a gcc 2.96 (et j'ai aucune idée de son systéme) que j'utilise donc, mais cette fois j'ai plein de problémes á la compilation, notamment toutes les "variables undeclared". (alors que tout est nickel sous mes yeux avec gcc 4.1.1).
Il est hors de question de changer quoi que ce soit sur cet ordinateur. Auriez-vous une explication ?
merci, ce pb fait tout foirer !