Je veux exécuter un programme c sur Ubuntu 18.04, sur une machine virtuelle, et j'obtiens cette erreur:
./test.c: line 3: syntax error near unexpected token `('
./test.c: line 3: `void main(int argc, char** argv)'
J'ai compilé et couru le fichier comme ceci:
gcc -o test test.c
./test.c
J'ai donné la permission au dossier en utilisant:
Sudo chmod a+rwx
J'ai cherché en ligne, et ce que je sais, c'est que (c'est un caractère spécial dans le shell/terminal mais je ne pouvais pas comprendre/trouver un moyen de l'utiliser quand j'écris du code sans erreur.
Quelqu'un peut-il m'aider s'il vous plaît à résoudre ce problème?
Dans gcc -o test test.c
, la variable test
après -o
est le nom du fichier exécutable réel. Vous devez donc exécuter ./test
. Lorsque vous exécutez ./test.c
, le shell tente de lire votre code source C (qui n’est qu’un fichier texte) en tant que script shell et l’exécute conformément à la syntaxe actuelle du shell (le shell essaie de le lire, pas comme code C compilé).
Par ailleurs, n'utilisez pas test
comme nom de fichier exécutable. Il y a déjà /usr/bin/test
et cela peut semer la confusion plus tard. Et dans l’ensemble, utiliser des noms d’exécutables système pour des programmes personnels n’est qu’une mauvaise pratique.