Erreur de syntaxe près du symbole inattendu « ( » ./test.c: l

Résolu/Fermé
dragons2 Messages postés 153 Date d'inscription lundi 29 décembre 2014 Statut Membre Dernière intervention 25 août 2022 - 20 sept. 2020 à 20:04
[Dal] Messages postés 6198 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 13 décembre 2024 - 23 sept. 2020 à 12:05
Bonjour à tous !
Voilà, je commence à apprendre le langage C, je code sous linux en utilisant la commande :
gcc (nom du fichier).c -Wall -o (nom du fichier)
puis:
./nom du fichier
Tout aller bien depuis 2 semaines, mais depuis hier impossible d'executer un programme. J'ai toujours la même erreur peu importe le code.
./test.c: ligne 2: erreur de syntaxe près du symbole inattendu « ( »
./test.c: ligne 2: `int main(void)'
J'ai essayé de donner le droits au fichier avec : chmod +x nom du fichier, rien n'y fait !
Le problème c'est que j'utilise souvent mon ordinateur pour la fac, je suis étudiant en informatique. J'ai besoin de pouvoir coder avec mon ordinateur.
Je vous remercie d'avance de l'aide que vous m'apporterai.

2 réponses

dragons2 Messages postés 153 Date d'inscription lundi 29 décembre 2014 Statut Membre Dernière intervention 25 août 2022 2
Modifié le 20 sept. 2020 à 22:03
J'ai copié un code qui fonctionne, la compilation et l'execution se passe bien, le même code copié sur le bureau me donne dans la console ce message :
bash: ./exo7.c: Permission non accordée

Si j'utilise ensuite :
chmod +x nom du dossier j'obtiens le message:
./exo7.c: ligne 2: erreur de syntaxe près du symbole inattendu « ( »
./exo7.c: ligne 2: `int main (void)'

Donc c'est bien un problème de permissions ?
1
[Dal] Messages postés 6198 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 13 décembre 2024 1 094
Modifié le 23 sept. 2020 à 09:36
L'erreur est produite par bash, ton interpréteur de commande Linux, car tu essayes d'exécuter le code source (le fichier .c) et non pas le code objet produit en résultat de la compilation. Ci-dessus, tout d'abord, bash refuse d'exécuter le fichier .c, car il n'a pas d'attribut "x". Ensuite, lorsque tu tu lui affectes cet attribut, bash essaye d'exécuter le contenu du fichier texte au travers de bash, et, bien sûr, comme il ne s'agit pas d'un script bash, il te signale une erreur de syntaxe.

Si ta commande de compilation est :
gcc exo7.c -Wall -o exo7


cette commande produit un exécutable dénommé "exo7" à partir de "exo7.c"

Sous Linux, tu lances l'exécutable comme ceci :
./exo7
0