J'ai écrit un code en C à Ubuntu qui vérifie les supports équilibrés dans l'entrée donnée.Je compilé à l'aide de GCC Compiler et je reçois la sortie correcte. C'est en fait une partie d'un cours en ligne et ils me demandent de Utilisez le drapeau du compilateur
cc1plus: warning: command line option â-std=c11â is valid for C/ObjC but not for C++
3 Réponses :
par "
La raison est la fin du fichier. Un capital C est interprété comme un fichier C ++. La solution consiste à renommer le fichier comme celui-ci: Ma question est si mon code compile lorsque je fais Voir ci-dessus. Mais il y a des situations où cela ne résoudrait pas tout. Bien que C11 donne des extensions aux versions précédentes, ce n'est pas 100% compatible à l'envers. P> p>
GCC FileName.c Code> Pourquoi ne compilait pas quand je fais
GCC -PIPE -O2 -STD = C11
Oui je l'ai changé.
Je l'ai corrigé. Merci.
-std = c11 code> est une option correcte
Cependant, vous avez besoin d'au moins
GCC 4.7 code> ou plus pour avoir cette option p>
Écrivez-vous
drapeau code> devant
gcc code>? Retirez-le. C'est tout simplement faux.
Je l'ai fait par erreur.
Eh bien, il est impossible de dire pourquoi votre code ne compile pas sans code de code et d'erreur.
La raison a probablement quelque chose à voir avec
C11 code> mais si vous ne fournissez pas plus d'informations, il est impossible de dire.
-Pipe code> évite simplement l'utilisation de fichiers pour un stockage temporaire - est-ce requis pour une utilisation locale ou pour la compilation par certains outils en ligne? Cela pourrait avoir du sens s'ils ne veulent pas leur serveur encombré de fichiers temporaires. Toutes ces options sont documenté A >
Commencez à prendre les drapeaux un par un. Lorsque vous trouvez le drapeau incriminé, lisez la documentation et déterminez ce que cela échoue. En outre, vous nommez votre fichier
FileName.c code>, n'oubliez pas que UNIX (Ubuntu) est sensible à la casse et balk si vous utilisez
FileName.c code>.
Essayez de supprimer le
<> code>. Je suppose que cela ne signifie que signifie "insérer ton propre nom de fichier ici". C'est à dire. Remplacez code> avec
FileName.c code>.
Si le fichier est
FileName.c code>, il est possible que le fichier contienne du code C ++ plutôt que C + code - ou que GCC suppose qu'il contient du code C ++ lorsqu'il est en réalité C code - et qu'il ne Comme ce qu'il voit parce que c'est l'autre langue. Les noms de fichier sur Ubuntu sont sensibles à la casse:
FileName.c code> et
FileName.ca.C code> sont des fichiers différents et représentent normalement le code dans différentes langues (minuscule
c < / code> pour le code C; majuscule
C code> pour le code C ++). (Voir la documentation GCC pour Options globales .
Votre question doit inclure le texte exact du message d'erreur que vous obtenez lorsque vous essayez de compiler avec
gcc -pipe -o2 -std = c11 -LM code> ou autre explication de ce que vous entendez par "My le code n'est pas compilé ".
Comme j'ai dit. Incluez le message d'erreur et arrêtez de forcer les gens à deviner ce qui ne va pas.
Je reçois un avertissement qui dit -std = C11 valable pour c / obj c mais pas pour C ++
Tapez la commande
que GCC code> et post la sortie
Aussi, modifiez la question et ajoutez le message d'erreur complet et exact i>
Sortie: / usr / bin / gcc
oui s'il vous plaît attendez
Ce n'est pas le message d'erreur que vous avez mentionné précédemment?
LRWXRWXRWX 1 racine racine 5 mai 20 21:38 / USR / BIN / GCC -> GCC-7
Il a changé après avoir changé le nom de fichier de c à c parce que quelqu'un a déclaré que c est pour C ++
S'il vous plaît ne modifiez pas votre question après avoir obtenu des réponses. Cela invalide les anciennes réponses. Si vous avez un nouveau problème, postez une nouvelle question, mais non de modifier votre question itérativement jusqu'à ce que votre code ne fonctionne.