J'ai récemment mis à jour mon installation d'Ubuntu de Jaunty à Karmic. Cela inclut apparemment une mise à jour du compilateur GNU C, car le code compilé précédemment ne le fait plus.Comment utiliser le drapeau -MG dans cc 4.4.1?
cc 4.4.1 Exécution (Ubuntu 4.4.1-4ubuntu8) produit maintenant l'erreur suivante, le code qui a bien fonctionné dans le cc 4.3.3 (Ubuntu 4.3.3-5ubuntu4):
$ make
cc -c -MMD -MG -MP -MF lex.d -g -Wall -O -o lex.o lex.c
cc1: error: -MG may only be used with -M or -MM
Ajout soit le drapeau -M
ou -MM
a entraîné le message suivant:
[...]
flex -o lex.c lex.l
cc -c -MM -MG -MP -MF lex.d -g -Wall -O -o lex.o lex.c
[...]
cc -g -Wall -O -o translate lex.o grammar.tab.o main.o list.o salloc.o suffixed.o expr.o emit.o optimize.o -lfl
lex.o: file not recognized: File truncated
collect2: ld returned 1 exit status
make: *** [translate] Error 1
On m'a dit que les différents -Mx
disent drapeaux make
comment les différents fichiers c dépendent .h
fichiers. Ma meilleure solution à ce jour est de dire explicitement que tous les fichiers .c
dépendent de tous les fichiers .h
, pour s'assurer que tout reste à jour. Cependant, cela induit beaucoup de travail inutile à la compilation.
Ma question est donc: Comment ai-je besoin d'ajuster les drapeaux pour cc
pour qu'il gère à nouveau automatiquement les dépendances?
Bienvenue chez Super User! Cette question semble liée au développement de logiciels, et sera donc probablement déplacée vers Stack Overflow. Juste pour être sûr: s'il vous plaît ne postez pas la même question sur Stack Overflow vous-même, il sera déplacé automatiquement si nécessaire. Si elle a été déplacée, connectez-vous à http://stackoverflow.com en utilisant le même OpenID et associez vos comptes sur http://superuser.com/users/18508?tab=accounts. En attendant, n'oubliez pas de lire la FAQ! Succès. (Et peut-être que je me trompe et vous verrez de bonnes réponses ici à Super User après tout!) – Arjan
Je l'ai mis ici parce que c'était lié à la mise à niveau de Jaunty à Karmic, mais à la réflexion, vous avez raison. C'est probablement un meilleur ajustement à Stack Overflow :) – Evanesco