gcc -Wall -pedantic ... reglera une grande partie de tes problèmes. Si les étudiants ont eu un cours sur Make, ils sauront régler les options de gcc sans compliquer leur cycle de développement. Emmanuel On Wed, 2005-01-26 at 11:11, Catherine Recanati wrote:
Bonjour à tous,
Je voulais vous signaler (ainsi qu'aux autres destinataires) un problème plutôt grave selon moi qui se produit avec l'utilisation de Linux et de gcc en salles machines (et au labo).
Le compilateur des salles F206 et F207 (gcc ...) laisse passer des erreurs de syntaxe graves en C, en l'occurence, il ne nécessite pas qu'une variable soit déclarée en tête de bloc. (Je rappelle à ceux qui ne connaitraient pas bien C qu'un bloc en C (tout ce qui est entre accolades) est constitué de deux blocs successifs, un bloc de déclarations suivi d'un bloc d'instructions).
On peut dans cet environnement déclarer ses variables "au vol" comme en java. La seule chose qu'il controle apparemment est que la variable est déclarée avant d'être utilisée. L'inconvénient pour débuguer est majeur, puisqu'une erreur fréquente est justement de masquer une variable globale par une locale... et donc que l'on ne peut plus vérifier ça facilement en regardant ne serait-ce que ce qui est déclarer en global et dans le main. [Les étudiants trouvent d'ailleurs tout ça bien peu gênant, puisque ça marche ! ].
Bref, c'est gênant pédagogiquement ET pratiquement. Sans doute ceux qui maintiennent gcc se sont-ils dits que leuc code de compilo java, bien optimisé, pouvait bien inspirer leur code de compilo C ! Mais si la portée des variables en java est moins importante puisqu'il s'agit d'objet, etc. elle est cruciale en C. C'est très dommage que les gens qui écrivent les compilos soient à ce point ignares !
Mais ça n'est pas la seule gêne.
Vu que les logiciels sont compilés eux-mêmes avec ce compilo foireux, d'autres problèmes pourraient surgir ailleurs. Et c'est peut-être ce qui m'arrive dans mon petit coin stupide - à bêtement utiliser des librairies.
En MOTIF, je n'obtiens pas les mêmes erreurs d'exécution - dans mon environnement [samsung = sofia pour les intimes] et en salles F206-07. Pour les étudiants, c'est gênant, car dans les salles F, leurs codes tournent avec quelques problèmes, mais ça va selon eux, et moi au labo, le même code n'affiche rien - ce qui est très normal sur leur source d'après la théorie que je maîtrise (mais pas eux), et je ne sais pas trop comment les noter, car ils n'ont pas été avertis en développant que leur code était incorrect.
Ne concluez pas trop vite que le problème est purement pédagogique ou que le labo est mieux installé. Le bug gcc que je vous signale marche très bien sur sofia aussi !
En espérant que vous saurez comprendre l'importance de ce problème (quelqu'en soit la raison effective ...). Catherine _______________________________________________ Systeme mailing list Systeme@lipn.univ-paris13.fr https://lipn.univ-paris13.fr/mailman/listinfo/systeme -- Emmanuel Viennet LIPN - Institut Galilee - Universite Paris-Nord